gpt4 book ai didi

javascript - 如何计算 Javascript 中两个日期之间的年、月和日差?

转载 作者:行者123 更新时间:2023-11-30 05:42:05 27 4
gpt4 key购买 nike

如何计算两天之间的差值,告诉我剩余的年数、剩余的月份和剩余的天数?

例子:来自:2013 年 10 月 1 日至:2013 年 11 月 15 日

输出:1 个月零 15 天

我已经尝试过 momentjs,但它会显示整个月份和日期,例如 1 个月,45 天。我也试过这个功能,但它显示同样的东西:

var diff = Math.floor(end_date.getTime() - start_date.getTime());
var day = 1000* 60 * 60 * 24;
var days = Math.floor(diff/day);
var months = Math.floor(days/31);
var years = Math.floor(months/12);

var message = days + " days "
message += months + " motnhs "

最佳答案

天数似乎是最棘手的计算,否则它非常简单。从目标毫秒中减去当前毫秒以获得以毫秒为单位的持续时间。然后对于除天数以外的每个值,取持续时间的底数除以年、月、小时、分钟或秒中的毫秒数。这会为您提供持续时间中的年数、月数、小时数、分钟数或秒数。最后,取每个值的模数。

对于天,从持续时间中减去以毫秒为单位的年数和月数以获得剩余毫秒数,然后将剩余毫秒数除以一天中的毫秒数。

function countdown(targetDate) {
var nowMillis = new Date().getTime();
var targetMillis = targetDate.getTime();
var duration = targetMillis - nowMillis;
var years = Math.floor(duration / 3.154e+10);
var durationMinusYears = duration - (years * 3.154e+10);
var months = Math.floor(duration / 2.628e+9) % 12;
var durationMinusMonths = durationMinusYears - (months * 2.628e+9);
var days = Math.floor(durationMinusMonths / 8.64e+7);
var hours = Math.floor(duration / 3.6e+6 ) % 24;
var mins = Math.floor(duration / 60000 ) % 60;
var secs = Math.floor(duration / 1000 ) % 60;

return [ years, months, days, hours, mins, secs ];
}

console.log('Count down until IE11 is no longer supported => ' + countdown(new Date(2020, 9, 13, 0, 0)));

关于javascript - 如何计算 Javascript 中两个日期之间的年、月和日差?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20248342/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com