JS计算两个日期之间的天数
算法:
利用毫秒差,由于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());本文内容仅供个人学习、研究或参考使用,不构成任何形式的决策建议、专业指导或法律依据。未经授权,禁止任何单位或个人以商业售卖、虚假宣传、侵权传播等非学习研究目的使用本文内容。如需分享或转载,请保留原文来源信息,不得篡改、删减内容或侵犯相关权益。感谢您的理解与支持!