检查现在是否不到3小时

时间:2011-05-02 10:20:56

标签: javascript datetime

如何检查时间戳是否超过3小时?

我有以下格式的时间戳:

15.03.2011 18:42

如何编写以下功能?

function isMoreThan3HoursOld(timestamp) {  
// parse the timestamp  
// compare with now (yes, client side time is ok)  
// return true if the timestamp is more than 3 hours old  

}

(我需要经常这样做,就是在一张有大约500个时间戳的表格上(50行,10列带时间戳))

此致

Larsi

3 个答案:

答案 0 :(得分:2)

应该解释一下:

var nowMinus3h = new Date, 
    dateToTest = new Date('2011/03/15 18:42');
nowMinus3h.setMinutes(nowMinus3h.getMinutes()-180); //=> now minus 180 minutes

// now the difference between the dateToTest and 3 hours ago can be calculated:
var diffMinutes = Math.round( (dateToTest  - nowMinus3h )/1000/60) ;

如果您需要将'15 .03.2011 18:42'转换为日期对象使用的有效输入:

var dat_ = '15.03.2011 18:42'.split(' '),
    dat = dat_[0].split('.').reverse().join('/')+' '+dat_[1];

答案 1 :(得分:0)

将时间戳更改为毫秒,并以毫秒为单位计算时差。

答案 2 :(得分:0)

要检查这种差异,您不需要几天,几个月和几年。只需几小时和几分钟。

因此,如果你把它读作一个字符串,或者可能两个字符串做这样的事情

function check()
{
int minutes1;
int minutes2;
minutes1=hour_loaded*60 + minutes_loaded;
minutes2=hour_now*60 + minutes_now;
if( abs(minutes1-minutes2)> 180 )
return false;
}

还要做一些声明来检查小时是否为:22或23.因为如果hour_loaded为22且hour_now为1,则此方法不起作用。