首先来分析一个问题,两个日期是什么格式的?假设是字符串格式:
可能是:2018/04/20,也可能是:2018/04/20 12:00:00
那接下来分情况讨论。
首先看看不含时间部分的日期格式计算:
var aDate = new Date('2018/04/23'); // 通过日期字符串,初始化第一个日期对象 var bDate = new Date('2018/04/25'); // 同上,初始化第二个日期对象 var aDay = 24 * 60 * 60 * 1000; // 完整一天有24小时,将小时换算成毫秒时间戳 var diffDay = (bDate - aDate) / aDay; // 计算间隔天数(注意日期隐式转换) console.log(diffDay); // 2,23日-25日间隔2天
然后再来看看包含时间部分的日期格式计算:
var aDate = new Date('2018/04/23'); var bDate = new Date('2018/04/25 12:00:00'); // 包含时间的日期字符串 var aDay = 24 * 60 * 60 * 1000; var diffDay = (bDate - aDate) / aDay; console.log(diffDay); // 2.5,自然计算的结果 console.log(Math.floor(diffDay)); // 2,根据个人情况向下取整,整数天 console.log(Math.ceil(diffDay)); // 3,根据个人情况向上取整,整数天
更多内容请看前端面试题库
WX搜索 【MST题库】小程序查看