如何检查时间戳是否超过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
答案 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,则此方法不起作用。