3

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

 1 year ago
source link: https://www.fly63.com/article/detial/11816
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

更新日期: 2022-06-29阅读: 62标签: 日期分享

扫一扫分享

利用毫秒差,由于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


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK