我在这里查看统计信息页面:http://movies.io/i/stats
我注意到那里有一个很酷的漂亮的东西,有一个计数器,计算自该网站诞生和今天以来的时间。它显示为:It was born 1 month, 8 days, 2 hours, and 36 minutes ago.
我尝试在页面上找不到运气的代码。
问题在于,在搜索如何使用时,我只发现数天。还有一个问题是刷新它...而不刷新页面。这似乎是一些严肃的编码。
如何在显示的页面上制作计数器?我不想使用jQuery。
如果这听起来像是一个问题,我很抱歉:嘿......在我放松的时候做我的工作。但问题是我是新手,我无法找到解决方案。
答案 0 :(得分:3)
以无聊的名义......这个页面应该在没有jquery的情况下更新javascript中的时间跨度。
<!doctype html>
<html>
<body onload="init()">
<script type="text/javascript">
function init() {
updateTimespan();
setInterval(updateTimespan, 3000);
}
function updateTimespan() {
var birth = new Date(1987, 3, 20); // april 20th
var now = new Date();
var timespan = getTimespan(birth, now);
var content = '' + timespan.years + ' years, ' +
timespan.months + ' months, ' +
timespan.days + ' days, ' +
timespan.hours + ' hours, ' +
timespan.minutes + ' minutes, ' +
timespan.seconds + ' seconds.';
var p = document.getElementById('pTimespan');
p.innerHTML = content;
}
function getTimespan(start, end) {
var seconds = end.getSeconds() - start.getSeconds();
var minutes = end.getMinutes() - start.getMinutes();
var hours = end.getHours() - start.getHours();
var days = end.getDate() - start.getDate();
var months = end.getMonth() - start.getMonth();
var years = end.getFullYear() - start.getFullYear();
if (seconds < 0) {
minutes -= 1;
seconds += 60;
}
if (minutes < 0) {
hours -= 1;
minutes += 60;
}
if (hours < 0) {
days -= 1;
hours += 24;
}
if (days < 0) {
months -= 1;
var lastMonthNumber = end.getMonth() - 1;
if (lastMonthNumber < 0) { lastMonthNumber += 12; } // will never be Feb.
var daysInLastMonth = new Date(end.getFullYear(), lastMonthNumber, 0).getDate();
days += daysInLastMonth;
}
if (months < 0) {
years -= 1;
months += 12;
}
return {
years: years,
months: months,
days: days,
hours: hours,
minutes: minutes,
seconds: seconds
};
}
</script>
<p>
Time since my birth</p>
<p id="pTimespan">
Will be updated</p>
</body>
</html>
答案 1 :(得分:0)
一种解决方案是获取您的网站创建的纪元时间(或近似值)。然后从中减去当前时间。然后使用该毫秒数转换为年,月,日等。这可以在javascript中或在使用PHP的服务器上完成。