这里我有一个函数用于计算两个时间变量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
答案 0 :(得分:1)
叹!!我只是需要一些睡眠。这是工作,这里是更新的jsFiddle:http://jsfiddle.net/9jk6a/9/
感谢所有帮助过的人。
//My Start time and End time
var start = "Mon Nov 23 2012 08:45:00 GMT+0800 (Malay Peninsula Standard Time)";
var end = "Mon Nov 23 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 (startTime < endTime && endTime < currentTime) {
alert ("Past!");
}
if(startTime < currentTime && currentTime < endTime){
alert("Current!");
}
if(currentTime < startTime && startTime < endTime){
alert("Future!");
}
}
答案 1 :(得分:0)
你应该比较someDate.getTime()
的值,因为它会给你一个代表unix时代的整数(自1970年1月1日以来被摧毁的时间),它将具有可比性和可分数。
我编辑了小提琴:http://jsfiddle.net/9jk6a/12/
干杯
答案 2 :(得分:0)
这是多余的:
var difference = currentTime - startTime;
if (difference > 0 && currentTime > startTime)
鉴于作业,difference > 0
和currentTime > startTime
正在测试完全相同的条件。如果一个是真的,那么另一个也将是真的,所以没有理由同时测试它们。
真的,你需要的只是:
if (startTime > endTime) {
throw "Invalid range: end precedes start";
}
if (startTime < currentTime) {
if (endTime < currentTime) {
alert("Past");
} else {
alert("Current");
}
} else {
alert ("Future");
}