【发布时间】:2017-01-07 02:05:10
【问题描述】:
问题是这个程序只能在 Chrome 中运行,无论我使用什么日期格式,或者当我使用 解析日期时,它都会返回 NaN。
程序将两个日期(常量和某个假期)转换为从 1970 年 1 月 1 日开始的毫秒数。比较并减去日期。然后它们被划分并四舍五入到日期为止。我相信问题在于日期的确定。我确实不想弄乱时区。
答案中的jQuery很好。正则表达式很好,但我不明白。
如果答案有工作证明,那就太好了。谢谢!
html 是(最重要的)
<p id="output">
</p>
代码是
$(document).ready(function() {
var date = new Date();
var year = date.getFullYear();
console.log(year + "-12-25");
var christmasdate = new Date(year + "-12-24 24:00:00");
$("#output").css("font-size","20px");
$("#output").html("If this lasts more than a second, something is wrong.");
setInterval(function() {
date = new Date();
var curr_time = date.getTime();
var xmas_time = christmasdate.getTime();
var time_left = Math.round((xmas_time - curr_time) / 1000);
var output;
if (time_left < 0) {
output = "Christmas was " + Math.abs(time_left) + " seconds ago."
}
else {
output = "There is " + time_left + " seconds until christmas eve.";
}
if (time_left == 1) {
output = "There is " + time_left + "second until christmas eve.";
}
$("#output").html(output);
var bodyheight = $(document).height();
var allheight = $("body").height();
$("h2").css("margin-top",(bodyheight / 2) - (allheight / 2))
}, 1000);
});
【问题讨论】:
-
24:00:00看起来不是有效时间。 -
@cartant — 它与 00:00:00 一样有效(请参阅 ECMA-262 §20.3.1.16Date Time String Format: "HH ... 从 00 到 24 的两个十进制数字")。但是,强烈建议不要使用 Date 构造函数解析字符串,因为即使它们试图符合 ECMA-262 的实现也会存在不一致。
-
@RobG 谢谢。
标签: javascript jquery date time