gpt4 book ai didi

javascript - 在 JavaScript 中显示 2 天之间的实时年、月、周和日

转载 作者:行者123 更新时间:2023-11-28 08:50:23 26 4
gpt4 key购买 nike

这就是我编写的代码,它似乎有效。

window.onload = function() {
var currentSpan = document.getElementById('current');

var minute = 60000,
hour = minute * 60,
day = hour * 24,
week = day * 7,
month = week * 4,
year = day * 365;
var start = new Date(2009, 6, 1);

setInterval(function() {

var now = new Date();



var difference = now - start;


var years = Math.floor(difference / year),
months = Math.floor((difference - (years * year)) / month),
weeks = Math.floor((difference - (months * month + years * year)) / week),
days = Math.floor((difference - (weeks * week + months * month + years * year)) / day);



currentSpan.innerHTML = 'Since has passed: ' + years + ' years, ' + months + ' months, ' + weeks + ' weeks and ' + days + ' days';

}, 500);

};

这似乎很好地更新了我的跨度,并且所有数字看起来都是正确的。

但是,代码看起来相当难看。我真的需要像这样设置人造常量,然后进行所有数学运算来计算我想要的吗?

我已经有一段时间没有使用 Date 对象了。

这是最好的方法吗?

最佳答案

您可以将这些常量放入数组中,然后迭代它:

function tdiff(utc) {
var diff = new Date() - new Date(utc);
var units = [
1000 * 60 * 60 * 24 * 365,
1000 * 60 * 60 * 24 * 28,
1000 * 60 * 60 * 24 * 7,
1000 * 60 * 60 * 24,
1000 * 60 * 60,
1000 * 60,
1000
];

var rv = [];
for (var i = 0; i < units.length; ++i) {
rv.push(Math.floor(diff / units[i]));
diff = diff % units[i];
}
return rv;
}

当然,由于月份和年份的长度并不总是相同,所以这并不是那么准确,但我想您已经意识到了:-)

另请参阅:http://timeago.yarp.com/有点酷

关于javascript - 在 JavaScript 中显示 2 天之间的实时年、月、周和日,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19223304/

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