php 日期转毫秒_【小技巧】 各种日期操作方法汇总

247eb8006e19cf6540e8a1454d72b58a.png

虽然现在处理日期方面已经有了很成熟的也很好用的库,例如(momentjs和date-fns),但是在实际开发中,我们有时候可能并不需要整个库。
所以我就在下面整理了在前端开发时对日期时间的各种操作,也算是比较全的了。其中一部分来自自己,还有一部分来源于我们万能的网友~

获取当前时间戳

var timestamp = Date.parse(new  Date()); //精确到秒var timestamp = (new Date()).valueOf();  //精确到毫秒var timestamp = new Date().getTime(); //精确到毫秒var timestamp = +new Date();

获取指定时间戳

var timestamp = (new Date(" 2019/10/24 08:00:00")).getTime();var timestamp = (new Date(" 2019-10-24 08:00:00")).getTime();

获取当前时间的前一天/后一天的时间戳

var timestamp = +new Date() - 24*60*60*1000;var timestamp = +new Date() + 24*60*60*1000;

今日零点时间戳

var timestamp = new Date(new Date().toLocaleDateString()).getTime();

今日最晚时间 23:59:59的时间戳

let timestamp = new Date(new Date().toLocaleDateString()).getTime()+24*60*60*1000-1;

获取当前时间的n天后的时间戳

/** * @param {number} n 天数 * @returns {Number} 返回值为时间毫秒值 */function toNextTimes(n){    let timestamp = +new Date() + n * 86400000;    return timestamp;}

本周第一天

/*** *  @return {*} WeekFirstDay 返回本周第一天的时间 */function showWeekFirstDay(){    let Nowdate=new Date();    let WeekFirstDay=new Date(Nowdate-(Nowdate.getDay()-1)*86400000);    return WeekFirstDay;}

本周最后一天

/*** *  @return {*} WeekLastDay 返回本周最后一天的时间 */function showWeekLastDay(){    let Nowdate=new Date();    let WeekFirstDay=new Date(Nowdate-(Nowdate.getDay()-1)*86400000);    let WeekLastDay=new Date((WeekFirstDay/1000+6*86400)*1000);    return WeekLastDay;}

本月第一天

/*** *  @return {*} MonthFirstDay 返回本月第一天的时间 */function showMonthFirstDay(){    let Nowdate=new Date();    let MonthFirstDay=new Date(Nowdate.getFullYear(),Nowdate.getMonth());    return MonthFirstDay;}

本月最后一天

/*** *  @return {*} MonthLastDay 返回本月最后一天的时间 */function showMonthLastDay(){    let Nowdate=new Date();    let MonthNextFirstDay=new Date(Nowdate.getFullYear(),Nowdate.getMonth()+1);    let MonthLastDay=new Date(MonthNextFirstDay-86400000);    return MonthLastDay;}

日期转时间戳

/** * @param {String} time - 日期字符串,如'2018-8-8','2018,8,8','2018/8/8' * @returns {Number} 返回值为时间毫秒值 */function timeToTimestamp (time) {    let date = new Date(time);    let timestamp = date.getTime();    return timestamp;}

格式化当前时间

/*** *  @return {string} timeText 返回系统时间字符串 */function getdataTimeSec() {    let time = new Date();    let weekDay;    let year = time.getFullYear();    let month = time.getMonth() + 1;    let day = time.getDate();    //获取时分秒    let h = time.getHours();    let m = time.getMinutes();    let s = time.getSeconds();    //检查是否小于10    h = check(h);    m = check(m);    s = check(s);    let now_day = time.getDay();    switch (now_day) {        case 0: {            weekDay = "星期日"        }            break;        case 1: {            weekDay = "星期一"        }            break;        case 2: {            weekDay = "星期二"        }            break;        case 3: {            weekDay = "星期三"        }            break;        case 4: {            weekDay = "星期四"        }            break;        case 5: {            weekDay = "星期五"        }            break;        case 6: {            weekDay = "星期六"        }            break;        case 7: {            weekDay = "星期日"        }            break;    }    let timeText = year + "年" + month + "月" + day + "日  " + " " weekDay +     " " + h + ":" + m +":" + s;    return timeText}

返回指定时间戳之间的时间间隔

/** *  @param {*} startTime 开始时间的时间戳 *  @param {*} endTime 结束时间的时间戳 *  @return {string} str 返回时间字符串 */function getTimeInterval(startTime, endTime) {    let runTime = parseInt((endTime - startTime) / 1000);    let year = Math.floor(runTime / 86400 / 365);    runTime = runTime % (86400 * 365);    let month = Math.floor(runTime / 86400 / 30);    runTime = runTime % (86400 * 30);    let day = Math.floor(runTime / 86400);    runTime = runTime % 86400;    let hour = Math.floor(runTime / 3600);    runTime = runTime % 3600;    let minute = Math.floor(runTime / 60);    runTime = runTime % 60;    let second = runTime;    let str = '';    if (year > 0) {        str = year + '年';    }    if (year <= 0 && month > 0) {        str = month + '月';    }    if (year <= 0 && month <= 0 && day > 0) {        str = day + '天';    }    if (year <= 0 && month <= 0 && day <= 0 && hour > 0) {        str = hour + '小时';    }    if (year <= 0 && month <= 0 && day <= 0 && hour <= 0 && minute > 0) {        str = minute + '分钟';    }    if (year <= 0 && month <= 0 && day <= 0 && hour <= 0 && minute <= 0 && second > 0) {        str += second + '秒';    }    str += '前';    return str;}

按类型格式化日期

/** * @param {*} date 具体日期变量 * @param {string} dateType 需要返回类型 * @return {string} dateText 返回为指定格式的日期字符串 */function getFormatDate(date, dateType) {    let dateObj = new Date(date);    let month = dateObj.getMonth() + 1;    let strDate = dateObj.getDate();    let hours = dateObj.getHours();    let minutes = dateObj.getMinutes();    let seconds = dateObj.getSeconds();    if (month >= 1 && month <= 9) {        month = "0" + month;    }    if (strDate >= 0 && strDate <= 9) {        strDate = "0" + strDate;    }    if (hours >= 0 && hours <= 9) {        hours = "0" + hours    }    if (minutes >= 0 && minutes <= 9) {        minutes = "0" + minutes    }    if (seconds >= 0 && seconds <= 9) {        seconds = "0" + seconds    }    let dateText = dateObj.getFullYear() + '年' + (dateObj.getMonth() + 1) + '月' +     dateObj.getDate() + '日';    if (dateType == "yyyy-mm-dd") {        dateText = dateObj.getFullYear() + '-' + (dateObj.getMonth() + 1) + '-' +         dateObj.getDate();    }    if (dateType == "yyyy.mm.dd") {        dateText = dateObj.getFullYear() + '.' + (dateObj.getMonth() + 1) + '.' +         dateObj.getDate();    }    if (dateType == "yyyy-mm-dd MM:mm:ss") {        dateText = dateObj.getFullYear() + '-' + month + '-' + strDate + ' ' +         hours + ":" + minutes + ":" + seconds;    }    if (dateType == "mm-dd MM:mm:ss") {        dateText = month + '-' + strDate + ' ' + hours + ":" + minutes + ":" + seconds;    }    if (dateType == "yyyy年mm月dd日 MM:mm:ss") {        dateText = dateObj.getFullYear() + '年' + month + '月' + strDate + '日' +         ' ' + hours + ":" + minutes + ":" + seconds;    }    return dateText; }

判断是否为闰年

/*** @param  {number} year 要判断的年份* @return {boolean} 返回布尔值*/function leapYear(year) {    return !(year % (year % 100 ? 4 : 400));}

返回两个年份之间的闰年

/*** @param  {number} start 开始年份* @param  {number} end 结束年份* @return {array}  arr 返回符合闰年的数组*/function leapYears(start, end) {    let arr = [];    for (var i=start; i        if ( leapYear(i) ) {            arr.push(i)        }    }    return arr}

判断时间格式是否有效

/*** 短时间,如 (10:24:06)* @param  {string} str 需要验证的短时间* @return {boolean} 返回布尔值*/function isTime(str) {    var a = str.match(/^(\d{1,2})(:)?(\d{1,2})\2(\d{1,2})$/);    if (a == null) { return false; }    if (a[1] >= 24 || a[3] >= 60 || a[4] >= 60) {        return false    }    return true;}/*** 短日期,形如 (2019-10-24)* @param  {string} str 需要验证的短时间* @return {boolean} 返回布尔值*/function strDateTime(str){    var result = str.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);    if (result == null) return false;    var d = new Date(result[1], result[3] - 1, result[4]);    return (d.getFullYear() == result[1] && d.getMonth() + 1 == result[3] &&     d.getDate() == result[4]);}/*** 长日期时间,形如 (2019-10-24 10:24:06)* @param  {string} str 需要验证的短时间* @return {boolean} 返回布尔值*/function strDateTime(str){    var result = str.match(/^(\d{4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/);    if (result == null) return false;    var d = new Date(result[1], result[3] - 1, result[4], result[5], result[6], result[7]);    return (d.getFullYear() == result[1] && (d.getMonth() + 1) ==     result[3] && d.getDate() == result[4] && d.getHours() ==      result[5] && d.getMinutes() == result[6] && d.getSeconds() == result[7]);}

验证日期大小

/*** 例:"2019-10-24" 和 "2019-10-25"* @param  {string} d1需要验证的日期1* @param  {string} d2需要验证的日期2* @return {boolean} 返回布尔值*/function compareDate(d1, d2) {    return ((new Date(d1.replace(/-/g, "\/"))) < (new Date(d2.replace(/-/g, "\/"))));}

验证一个日期是不是今天

/*** @param  {string} val 需要验证的日期* @return {boolean} 返回布尔值*/function isToday(val){    return new Date().toLocaleDateString() == new Date(val).toLocaleDateString();}

验证传入的日期是否是昨天

/*** @param  {string} val 需要验证的日期* @return {boolean} 返回布尔值*/function isYesterday(val) {    var today = new Date();    var yesterday = new Date(now - 1000 * 60 * 60 * 24);    var test = new Date(val);    if (yesterday.getYear() === test.getYear() && yesterday.getMonth() ===     test.getMonth() && yesterday.getDate() === test.getDate()) {        return true;    } else {        return false;    }}

设置几天后的日期

/*** @param  {string} date 起始日期* @param  {number} day 向后的天数* @return {string} 返回想要得到的日期*/function convertDate (date, day) {    let tempDate = new Date(date);    tempDate.setDate(tempDate.getDate()+day);    let Y = tempDate.getFullYear();    let M = tempDate.getMonth()+1 < 10 ? '0'+(tempDate.getMonth()+1) : tempDate.getMonth()+1;    let D = tempDate.getDate() < 10 ? '0'+(tempDate.getDate()) : tempDate.getDate();    let result = Y + "-" + M + "-" + D    return result;}

写在最后

若上面函数有错误,或者还有工作中遇到,但是上面没有写到的,欢迎指出来~

本文转载自:https://segmentfault.com/a/1190000021559646

❤️爱心三连击

1.看到这里了就点个在看支持下吧,你的在看是我创作的动力。

2.关注公众号程序员成长指北「带你一起学Node」

3.特殊阶段,带好口罩,做好个人防护。

4.添加微信【ikoala520】,拉你进技术交流群一起学习。

cfc10ea203cb993a97ef11fbccc7b305.png

“在看转发”是最大的支持

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/470361.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Express接口案例——完成文章增删改查接口

一、创建文章的Model var mongoose require(mongoose) const baseModel require(./base-model.js) const Schema mongoose.Schemaconst articleSchema new mongoose.Schema({title: {type: String,required: true},description: {type: String,required: true},// 文章内容…

Express接口案例——完成文章评论相关的接口

一、评论的Model {"comment": {"id": 1,"createdAt": "2016-02-18T03:22:56.637Z","updatedAt": "2016-02-18T03:22:56.637Z","body": "It takes a Jacobian","author": {"us…

通过set方式注入的bean为null_Spring 注入集合

注入集合你已经看到了如何使用 value 属性来配置基本数据类型和在你的 bean 配置文件中使用标签的 ref属性来配置对象引用。这两种情况下处理奇异值传递给一个 bean。现在如果你想传递多个值&#xff0c;如 Java Collection 类型 List、Set、Map 和 Properties&#xff0c;应该…

Express与传统Web应用(服务端渲染、art-template模板引擎、配置静态资源托管)

一、服务端渲染相关的概念 什么是渲染&#xff1f; 例如对于我们前端开发者来说最常见的一种场景就是&#xff1a;请求后端接口数据&#xff0c;然后将数据通过模板绑定语法绑定到页面中&#xff0c;最终呈现给用户。 数据&#xff1a; 模板&#xff1a; 渲染&#xff08;…

税收分类编码2020_增值税开票系统你会吗?2020最新开票(金税盘版)图文教程详细版...

做会计的都或多或少的涉及到增值税&#xff0c;增值税也算是我们税务里面占比比较大的&#xff0c;那么增值税发票怎么开&#xff1f;增值税开票软件怎么操作&#xff1f;你都会吗&#xff1f;你曾经会是不是都忘记了&#xff1f;今天会计君和大家分享一份完整的增值税发票开票…

传统Web应用案例(采用服务端渲染)

一、准备静态页面 https://www.expressjs.com.cn/resources/middleware/errorhandler.html 静态页面&#xff1a; https://github.com/gothinkster/realworld-starter-kit/blob/master/FRONTEND_INSTRUCTIONS.md 二、提取控制器模块 三、用户注册的表单提交 3.1 同步方式提…

teamviewer无法建立连接原因未知_3389远程无法连接的5种原因分析

3389无法连接的5种原因分析1、服务器在内网。2、做了tcp/ip筛选。先执行下面cmd命令&#xff1a;cmd /c regedit -e c:1.reg HKEY_LOCAL_MACHINESYSTEMControlSet001ServicesTcpip&#xff0c;导出注册表里关于TCP/IP筛选的第一处cmd /c regedit -e c:2.reg HKEY_LOCAL_MACHINE…

Express框架实现原理

一、Express 源码的目录结构 首先&#xff0c;会去package.json项目&#xff08;包&#xff09;描述文件中寻找main属性的值&#xff0c; main&#xff1a;入口文件。这个main的值就是入口文件所在的路径。 这里并没有配置main属性的值&#xff0c;默认会去找index.js文件作为…

nginx集群_使用Nginx+Tomcat+keepalived 搭建高性能高可用性负载均衡集群

在互联网项目中&#xff0c;往往面临着高用户量、高并发的问题&#xff0c;造成服务器的压力非常大&#xff0c;特别是电商项目&#xff0c;以淘宝天猫为例&#xff0c;近年双十一的成交量屡创新高&#xff0c;可想而知淘宝天猫的服务器面临的并发量有多大&#xff0c;单一服务…

Nodejs之http模块详解

一、Web服务器 什么是Web服务器&#xff1f; 当应用程序&#xff08;客户端&#xff09;需要某一个资源时&#xff0c;可以向一个台服务器&#xff0c;通过Http请求获取到这个资源&#xff1b;提供资源的这个服务器&#xff0c;就是一个Web服务器&#xff1b; 目前有很多开源…

iOS开源照片浏览器框架SGPhotoBrowser的设计与实现

简介 近日在制作一个开源加密相册时附带着设计了一个照片浏览器&#xff0c;在进一步优化后发布到了GitHub供大家使用&#xff0c;该框架虽然没有MWPhotoBrowser那么强大&#xff0c;但是使用起来更为方便&#xff0c;操作更符合常规相册习惯&#xff0c;自定义和修改源码也十分…

Koa框架

一、认识Koa 前面我们已经学习了express&#xff0c;另外一个非常流行的Node Web服务器框架就是Koa。 Koa官方的介绍&#xff1a; koa&#xff1a;next generation web framework for node.js&#xff1b;koa&#xff1a;node.js的下一代web框架&#xff1b; 事实上&#x…

Node使用MySQL

一、认识mysql2 如何可以在Node的代码中执行SQL语句来&#xff0c;这里我们可以借助于两个库&#xff1a; mysql&#xff1a;最早的Node连接MySQL的数据库驱动&#xff1b;mysql2&#xff1a;在mysql的基础之上&#xff0c;进行了很多的优化、改进&#xff1b;目前相对来说&a…

java安装后在哪里打开_冷却塔声屏障安装后降噪效果不理想,原因出在哪里?...

现有冷却塔大部分产品都不能满足噪音环保标准&#xff0c;只有少数几种低吨位超低噪声型号的冷却塔可以满足少部分区域噪声标准要求。在一些商住混合区&#xff0c;冷却塔的出风口强烈的噪声和热气往往干扰附近居民不得安宁&#xff0c;所以冷却塔的噪声问题成为环境投诉的热点…

iOS10 权限崩溃问题

iOS10 权限崩溃问题 原文: http://blog.csdn.net/runleelrg/article/details/51673025 今天 手机升级了 iOS10 Beta&#xff0c;然后用正在开发的项目 装了个ipa包&#xff0c;发现点击有关 权限访问 直接Crash了&#xff0c;并在控制台输出了一些信息&#xff1a; This app h…

Koa框架——coderhub实战

https://github.com/zep03/koa-coderhub/commits/main 一、coderhub功能接口说明 Coderhub旨在创建一个程序员分享生活动态的平台。 完整的项目接口包括&#xff1a; 面向用户的业务接口&#xff1b;面向企业或者内部的后台管理接口&#xff1b; 完成的功能如下&#xff1a;…

python 协程_Python多任务协程

协程协程&#xff0c;又称微线程&#xff0c;纤程。英文名Coroutine。协程是python个中另外一种实现多任务的方式&#xff0c;只不过比线程更小占用更小执行单元(理解为需要的资源)。为啥说它是一个执行单元&#xff0c;因为它自带CPU上下文。这样只要在合适的时机&#xff0c;…

JavaScript高级之构造函数和原型

1.1 概述 在典型的 OOP 的语言中&#xff08;如 Java&#xff09;&#xff0c;都存在类的概念&#xff0c;类就是对象的模板&#xff0c;对象就是类的实例&#xff0c;但在 ES6之前&#xff0c; JS 中并没用引入类的概念。 ES6&#xff0c; 全称 ECMAScript 6.0 &#xff0c;2…

JavaScript高级之继承

ES6之前并没有给我们提供 extends 继承。我们可以通过构造函数原型对象模拟实现继承&#xff0c;被称为组合继承。 2.1 call() 调用这个函数, 并且修改函数运行时的 this 指向 fun.call(thisArg, arg1, arg2, …) thisArg &#xff1a;当前调用函数 this 的指向对象arg1&…

【代码笔记】iOS-UILable电子表显示

一&#xff0c;效果图。 二&#xff0c;代码。 RootViewController.h #import <UIKit/UIKit.h>interface RootViewController : UIViewController {UILabel *label;NSDateFormatter *dateFormatter ; } end RootViewController.m #import "RootViewController.h&qu…