【发布时间】:2017-07-16 05:24:44
【问题描述】:
正如标题所说,我需要获取两个日期之间的差异并显示倒计时到结束日期的小时、分钟、秒。我有这个:
function timer(){
'use strict'
var date1 = new Date().getTime();
var date2 = new Date("05/29/2017").getTime();
var diff = date2 - date1;
var seconds = diff / 1000;
var minutes = (diff / 1000) / 60;
var hours = minutes / 60;
var message = 'Hours: ' + Math.floor(hours) + " Minutes: " + Math.floor(minutes) + " Seconds: " + Math.floor(seconds);
var output = document.getElementById('output');
if (output.textContent !== undefined) {
output.textContent = message;
} else {
output.innerText = message;
}
}
setInterval("timer()", 1000);
window.onload = timer;
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>hi</title>
<!--[if lt IE 9]>
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link rel="stylesheet" href="css/form.css">
</head>
<body>
<!-- auction.html -->
<form action="#" method="post" id="theForm">
<fieldset><legend>Auction ends on May 29, 2017</legend>
<p>Refresh page for updated times.</p>
<div id="output"></div>
<input type="submit" value="Refresh" id="submit">
</fieldset>
</form>
<script src="js/auction.js"></script>
</body>
</html>
我的作业说明指出我需要:“选择未来的结束日期(作业到期后几周)并使用 UTC。显示距离拍卖结束还剩的小时、分钟和秒数。” 我对如何实施 UTC 并创建正确的倒计时有点迷茫?我什至不确定我是否做对了(我刚刚开始学习 js)。我应该如何修复我的代码?
【问题讨论】:
-
(a) 查看
Date.UTC函数。 (b) 问问自己,你的秒、分、小时计算是否合理。作为用户,我不会期望输出诸如“3 小时 等于 180 分钟 等于 10,800 秒”(这没有给我任何有价值的信息),而是累积的输出如“1 小时 50 分 20 秒”。在这种情况下,您需要重新考虑计算。 -
这确实是 How do I get the number of days between two dates in JavaScript? 或 How to calculate date difference in javascript 的副本。唯一的区别是将差异解决为时间而不是天数。
标签: javascript date countdown