我希望在几秒钟内找到2个日期(或时间,不知道怎么说)之间的差异。
这是代码:
var montharray = new Array ("Jan" , "Feb" , "Mar" , "Apr" , "May" , "Jun" , "Jul" , "Aug" , "Sept" , "Oct" , "Nov" , "Dec")
function time_difference (yr,m,d,h,mins,sec){
var today = new Date();
var this_year = today.getYear();
if (this_year<1000)
this_year+=1900;
var this_month= today.getMonth();
var this_day=today.getDate();
var this_hour=today.getHours();
var this_mins=today.getMinutes();
var this_secs=today.getSeconds();
var today_string=montharray[this_month]+" "+this_day+", "+this_year+" "+this_hour+" "+this_mins+" "+this_secs;
var disconnect_string=montharray[m-1]+" "+d+", "+yr+" "+h+" "+mins+" "+sec;
var difference=(Math.round((Date.parse(disconnect_string)-Date.parse(today_string))/1000)*1)
alert(difference);
}
time_difference(2014,4,13,16,0,0)
(在我的国家,当我问问题的时间是15:26时)
但警报告诉我NaN。
但是当我只使用年,月,日时它会返回预期结果,1。
标点符号有问题还是......?
答案 0 :(得分:2)
使用方法getTime
。它以毫秒为单位返回日期的UNIX偏移量。
var date1= new Date();
var date2 = new Date("2013-01-01");
var difference = (date1.getTime() - date2.getTime()) / 1000;
如果您不知道两个日期中的哪一个更早,则可以对结果使用Math.abs
。
difference = Math.abs(difference);
答案 1 :(得分:1)
我的JSFiddle在这里:http://jsfiddle.net/naokiota/T2VV2/2/
我想你想做的是这样的事情:
function time_difference (yr,m,d,h,mins,sec){
var t1 = new Date(yr,m-1,d,h,mins,sec);
var t2 = Date.now();
var diff_msec = t1 - t2;
var diff_seconds = parseInt(diff_msec/1000);
var diff_minutes = parseInt(diff_seconds/60);
var diff_hours = parseInt(diff_minutes/60);
alert(diff_seconds+" seconds");
alert(diff_minutes+" minutes");
alert(diff_hours+" hours");
}
time_difference(2014,4,13,16,0,0);
希望这有帮助。