一、两个日期相减计算天数的公式
// JavaScript代码 const date1 = new Date("2021-03-01"); const date2 = new Date("2021-03-30"); const timeDiff = Math.abs(date2.getTime() - date1.getTime()); const daysDiff = Math.ceil(timeDiff / (1000 * 3600 * 24)); console.log(daysDiff); // 输出29
两个日期相减计算天数的公式是通过计算两个日期相差的毫秒数, 再将毫秒数转换成天数来实现的。假设日期一是date1
, 日期二是date2
,则两个日期相差的毫秒数为timeDiff = Math.abs(date2.getTime() - date1.getTime())
,由于得到的 毫秒数不一定是整天,因此通过Math.ceil()
函数向上取整, 将毫秒数转换成天数daysDiff = Math.ceil(timeDiff / (1000 * 3600 * 24))
。 最后得到的daysDiff
即是两个日期相减的天数。
二、SQL计算两个日期相减天数
-- MySQL代码 SELECT DATEDIFF('2021-03-30', '2021-03-01') AS days_diff; -- 输出 29
在SQL中,可使用DATEDIFF
函数计算两个日期相减的天数。假设 日期一是date1
,日期二是date2
,则SQL语句可写成: SELECT DATEDIFF(date2, date1) AS days_diff;
并通过AS
关键字重命名返回的结果集中表示天数的字段名。执行以上SQL语句可得到 两个日期相减的天数days_diff
。
三、微信小程序计算两个日期相减天数
{{daysDiff}} // JS代码 Page({ data: { date1: "2021-03-01", date2: "2021-03-30", daysDiff: null }, onLoad: function () { this.calcDaysDiff(); }, calcDaysDiff() { const timeDiff = Math.abs(new Date(this.data.date2).getTime() - new Date(this.data.date1).getTime()); const daysDiff = Math.ceil(timeDiff / (1000 * 3600 * 24)); this.setData({ daysDiff }); } })
在微信小程序中,可以通过在calcDaysDiff
函数中,实现与JavaScript 相同的两个日期相减计算天数的逻辑,最后更新数据绑定至daysDiff
以在小程序页面中呈现。
四、Excel计算两个日期相减天数
=DATEDIF(A1, A2, "d")
在Excel中,可以使用函数DATEDIF()
计算两个日期的差值,其中 DATEDIF()
函数的语法为DATEDIF(开始日期, 结束日期, 返回日期差值的单位)
。 在上述语法中,开始日期
为一个日期值或是对日期值的引用,结束日期
同样为一个日期值或是对日期值的引用。最后的返回日期差值的单位
则为一个代表日期差值 计算单位的文本字符串。其中,单位可以是"d",“m",“y"等。在本例中,则可使用 =DATEDIF(A1, A2, "d")
计算A1和A2之间相差的天数。
五、日期相减计算天数在线
在线网站Timeanddate.com
提供了便捷的日期计算器,可以计算两个日期之间相差的天数。 访问https://www.timeanddate.com/date/duration.html
以打开日期计算器,在“From”和 “To”输入需要计算的日期值,点击“Calculate duration”按钮即可计算出相差的天数。