Это то, что я кодировал, и похоже, что оно работает.
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
.
Это лучший способ сделать это?