Проверьте, если сейчас меньше, чем за 3 часа - PullRequest
0 голосов
/ 02 мая 2011

Как проверить, если отметка времени старше 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 ]

2 голосов
/ 02 мая 2011

Должно объясниться:

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' в действительный ввод для объекта Date:

var dat_ = '15.03.2011 18:42'.split(' '),
    dat = dat_[0].split('.').reverse().join('/')+' '+dat_[1];
0 голосов
/ 02 мая 2011

Для проверки этой разницы вам не нужны дни, месяцы и годы.Просто часы и минуты.

Так что, если вы читаете это как строку или, возможно, две строки, сделайте что-то вроде этого

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.

0 голосов
/ 02 мая 2011

Измените метку времени на миллисекунды и рассчитайте разницу во времени также в миллисекундах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...