用十进制格式写我的年龄

时间:2015-09-01 11:58:42

标签: javascript

我正在尝试用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毫秒)的间隔,我没有看到我的年龄更新,因为它在我上面提到的示例链接上。 我是否错误地考虑了这个算法?

1 个答案:

答案 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/