我正在尝试用Javascript中的十进制格式(例如28.232423424)编写我的年龄,并实时更新此编号。我可以在this page上看到我正在尝试做的一个例子。
到目前为止,我有以下内容:
的Javascript
var age, daysBetweenDates;
daysBetweenDates = function(d1, d2) {
var diffDays, firstDate, oneDay, secondDate;
oneDay = 24 * 60 * 60 * 1000;
firstDate = Date.parse(d1);
secondDate = Date.parse(d2);
diffDays = Math.round(Math.abs((firstDate - secondDate) / oneDay));
return diffDays;
};
age = function() {
var today;
today = new Date();
return $('#myAge').text(daysBetweenDates('Jun 2, 1987', today) / 365);
};
$(document).on('ready page:load', function() {
return setInterval(age, 500);
});
我得到一个号码28.27123287671233(我相信这是正确的)。然而,尽管设置了半秒(500毫秒)的间隔,我没有看到我的年龄更新,因为它在我上面提到的示例链接上。 我是否错误地考虑了这个算法?
答案 0 :(得分:2)
这是因为你计算天数并在之后围绕它。 取下圆角部分,它可以按预期工作。
我稍稍调整了你的代码:
var age, daysBetweenDates;
daysBetweenDates = function(d1, d2) {
var diffDays, oneDay;
oneDay = 24 * 60 * 60 * 1000;
diffDays = (d2 - Date.parse(d1)) / oneDay;
return diffDays;
};
age = function() {
$('#myAge').text(daysBetweenDates('Jun 2, 1987 00:00:00', new Date()) / 365);
};
setInterval(age, 500);
JS-Fiddle:https://jsfiddle.net/qm4dudr7/