【发布时间】:2012-11-22 01:17:59
【问题描述】:
这里我有一个函数用于计算两个时间变量start 和end 之间的差异,并将输出显示为“过去”、“当前”或“未来”。
我能够计算“当前”和“未来”值,但“过去”没有运气。这是jsFiddle,任何帮助都会很棒。
顺便说一句,我确实更喜欢无插件的方式来实现这一点。
//My Start time and End time
var start = "Mon Nov 22 2012 08:45:00 GMT+0800 (Malay Peninsula Standard Time)";
var end = "Mon Nov 22 2012 10:15:00 GMT+0800 (Malay Peninsula Standard Time)";
//Calling to test function
test(start, end);
//Function to calculate
function test(startTime, endTime) {
startTime= new Date(startTime);
endTime= new Date(endTime);
var currentTime = new Date();
var difference = currentTime - startTime;
if (difference > 0 && currentTime > startTime) {
alert ("Past!");
}
if(startTime < currentTime && currentTime < endTime){
alert("Current!");
}
if(difference < -1){
alert("Future!");
}
}
链接到jsFiddle
【问题讨论】:
-
所以...过去是
start < end < current,现在是start < current < end,未来是current < start < end? -
这没什么意义。
-
我看不出有什么臭的 jQuery,我们被烧死了!!
-
您不应该期望 Date 在所有浏览器中始终如一地解析字符串,例如"Mon Nov 22 2012 08:45:00 GMT+0800" 可以被认为是无效的日期,因此符合要求的浏览器将返回
NaN,其他浏览器将忽略不正确的日期并返回 2012 年 11 月 22 日星期四的日期对象。打破它起来手动解析,就会得到一致的结果。
标签: javascript jquery html date date-format