cra*_*ice 8 javascript datetime date humanize google-apps-script
我正在尝试使用此函数在 JS 中计算剩余时间(例如:从今天(2014/03/02)算起的 10 年、2 个月和 10 天:
var d2 = new Date(2024, 3, 12);
var d1 = new Date();
var d0 = new Date(1970, 0, 1);
var diff = new Date(d2.getTime() - (d1.getTime() + d0.getTime() ) );
var years = diff.getFullYear();
var months = diff.getMonth();
var days = diff.getDay();
alert("remaining time = " + years + " years, " + months + " months, " + days + " days.");
Run Code Online (Sandbox Code Playgroud)
但是,我得到了 1980 年的差异,而不是 10 年的差异(尽管我理解的天数差异购买了以月和年为单位的天数变化):

是否可以使用此策略执行此“剩余时间”操作?如果是这样,如何得到预期的结果?
这里是 JS shell 中的函数:jsfiddle.net/3ra6c/
我在这里找到了我正在寻找的解决方案:
var date1 = new Date();
var date2 = new Date(2015, 2, 2);
var diff = new Date(date2.getTime() - date1.getTime());
var years = diff.getUTCFullYear() - 1970; // Gives difference as year
var months = diff.getUTCMonth(); // Gives month count of difference
var days = diff.getUTCDate()-1; // Gives day count of difference
alert("remaining time = " + years + " years, " + months + " months, " + days + " days.");
Run Code Online (Sandbox Code Playgroud)
而且效果似乎非常好!
正如我所解释的,Date没有配备此类功能,您必须自己进行数学计算。您可以获得两个日期之间的毫秒差异,但接下来需要进行数学计算来按照您的意愿表示该差异。
moment.js使用、 加载require.js、 以及人性化近似值的示例。
JavaScript
require.config({
paths: {
moment: 'http://momentjs.com/downloads/moment.min'
}
});
require(['moment'], function (moment) {
var x = moment(new Date(2024, 3, 12)).from(new Date());
console.log(x);
});
Run Code Online (Sandbox Code Playgroud)
输出
in 10 years
Run Code Online (Sandbox Code Playgroud)
关于jsFiddle
查看他们的文档,了解如何人性化输出,您可能需要更多细节。
| 归档时间: |
|
| 查看次数: |
14332 次 |
| 最近记录: |