gpt4 book ai didi

javascript - 相减时返回错误的日期

转载 作者:行者123 更新时间:2023-11-28 20:31:30 24 4
gpt4 key购买 nike

为什么当我减去这两个日期时我会得到错误的答案

var a = new Date("1990","0","1");
var b = new Date("1900","0","1");

var x = new Date(a - b);

console.log(x);

answer: Date {Thu Jan 01 1880 02:00:00 GMT+0200 (South Africa Standard Time)}

如何让它返回:90年0天0个月

最佳答案

看看Moments.js

var start = moment([1990, 0, 1]);
var end = moment([1900, 0, 1]);

console.log(start.from(end));
console.log(start.from(end, true));
console.log(start.diff(end, "years"));

给出

in 90 years
90 years
90

关于jsfiddle

要获得您所请求的确切格式,需要做更多的工作,如下所示

var start = moment([1990, 0, 1]);
var end = moment([1900, 0, 2]);

var diff = start.diff(end, "years", true);

console.log(Math.floor(diff) + " years and " + Math.floor(30 * ((12 * (diff % 1)) % 1)) + " days and " + Math.floor(12 * (diff % 1)) + " months");

给出

89 years and 29 days and 11 months 

我上面的计算不包括闰年或任何其他差异,这只是粗略的,但你明白了。

关于jsfiddle

关于javascript - 相减时返回错误的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16280232/

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