JS计算两个日期之间的天数

更新日期: 2022-06-29阅读: 2k标签: 日期

算法:

利用毫秒差,由于1秒等于1000毫秒,60秒等于1分钟,60分钟一小时,一天24小时。所以毫秒差除以(60×60×1000×24)等于天数。


实现方式一:Date.parse

/**
* 计算两个日期之间的天数
* @param start 开始日期 yyyy-MM-dd
* @param end 结束日期 yyyy-MM-dd
* @returns {number} 如果开始日期等于结束日期,则返回一天;开始日期大于结束日期,则返回0
*/
function getDaysBetween(start,end){
var startDate = Date.parse(start);
var endDate = Date.parse(end);
if (startDate>endDate){
return 0;
}
if (startDate==endDate){
return 1;
}
var days=(endDate - startDate)/(24*60*60*1000);//1天=24*60*60*1000毫秒
return days;
}

调用

getDaysBetween('2022/5/1','2022/6/29');//59


实现方式二:getTime()

参数和返回同方式一。代码如下:

function  getDaysBetween(start,end){
var startDate = new Date(start).getTime();
var endDate = new Date(end).getTime();
if (startDate>endDate){
return 0;
}
if (startDate==endDate){
return 1;
}
return (endDate - startDate)/(24*60*60*1000);
}


延伸:Date.parse()和Date.getTime()的区别

1、Date.parse()

该方法可解析一个日期时间字符串,并返回 1970/1/1 午夜距离该日期时间的毫秒数;

该方法为Date 对象的静态方法;

parse() :输出从 1970/01/01 到一个具体日期的毫秒数;

Date.parse('时间可以自定义')。

var time1 = Date.parse('2018/07/11');
console.log(time1);

2、Date.getTime() 

该方法可返回距 1970 年 1 月 1 日之间的毫秒数;

getTime() :输出从 1970/01/01 到一个现在(new Date())的毫秒数;

该方法总是结合一个 Date 对象来使用;

var time2 = new Date();
console.log(time2.getTime());


链接: https://www.fly63.com/article/detial/11816

解决javaScript在不同时区new Date()显示值不同问题

在日期格式化时遇到的问题,日期格式化方法在最下面。如果在中国时区 formatDate(‘2019-07-09‘) 结果是 ‘2019-07-09’,如果 在夏威夷时区 utc-10:00 或者别的时区 formatDate(‘2019-07-09‘) 结果是 ‘2019-07-08’

JS获取当前月的最后一天

为了更好的讲这节的内容,提示一个 JS 处理日期的小技巧,想获取上个月最后一天,只需要设置SetDate参数为0即可。使用 JS 获取当前月的最后一天,咱们通常的思路先获取下个月的第一天

Js如何获取某一天所在的星期?

我们这里来获取今天所在星期的始末日期,我们可以通过(new Date).getDay()来获取今天是星期几,然后再通过这个减去或者加上一定的天数,就是这个星期的开始日期和结束日期。

vue 循环取值日期格式化,字符串截取处理

用vue取值页面遍历时,每次都搜索js日期格式化和字符串长度截取,这次记录下来,以后从这里直接拿即可。html代码如下

js中Date的构造函数解读

javascript中的内置对象是我们经常会用到的,那么今天我们就来说说Date的四种构造方法吧,new Date()这是我们最常使用也最熟悉不过的Date对象的构造方法了,通过无参数的构造函数我们可以默认获取到一个代表实例化时的Date对象

js如何获取某一天所在的星期?

我们这里来获取今天所在星期的始末日期,我们可以通过(new Date).getDay()来获取今天是星期几,然后再通过这个减去或者加上一定的天数,就是这个星期的开始日期和结束日期。

ElementUI日期选择器时间选择范围限制

ElementUI是饿了么推出的一套基于vue2.x的一个ui框架。官方文档也很详细,这里做一个element-ui日期插件的补充。官方文档中使用picker-options属性来限制可选择的日期,这里举例子稍做补充。

js获取一段时间内的间隔日期

js获取指定时间范围内指定间隔天数的所有日期,前端js,已知开始时间a、结束时间b和间隔天数c,要求取在a-b这两个时间范围内、间隔c天的所有日期。

前端的各种日期操作

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

Safari Date() 函数对日期时间字符串(yyyy-MM-dd HH:mm:ss) 提示NaN的问题

今天发现一个奇怪的问题,在iPhone使用 safari 选择定时发布文章到OSC,选择时间后提示不是合法的时间,判断时间的代码如下:在Chrome下会输出 pass,在Safari会输出 isNaN,根据 ECMAScript 5 ISO-8601 format support: 的说法

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!