2016-02-07 6 views
3

Мне нужно проверить разницу между двумя датами - от db до фактического, но в минутах в JS/jQuery (мне нужно запустить функцию для проверки с помощью ajax).
Это формат моей даты:Разница между двумя датами (datetime) в минутах

19-01-2016 22:18 

мне нужно что-то вроде этого:

if ((date_actual - date_db) < 1 minute) { 
    //do something 
} 

Как я могу это сделать?

EDIT: Я создал что-то вроде этого, но я всегда получаю тот же журнал, это не меняет - http://jsbin.com/xinaki/edit?js,console

EDIT 2: Здесь работает код, НО теперь это проверка в тот же час/минута, например. 12:50:50 и 12:50:58 показать журнал только для этого 2-х секунд, но мне нужно «пребывание» войти на 1 минуту
http://jsbin.com/laruro/edit?js,console

ответ

2

Предполагая, что все даты в том же формате, и что они являются строками, вы могли бы использовать эту вспомогательную функцию для преобразования одного или обоих строк к реальному Date() объекта:

var makeDate = function(dateString) { 
    var d = dateString.split(/[\s:-]+/); 
    return new Date(d[2],d[1] - 1,d[0],d[3],d[4]); 
} 

, а затем использовать его как можно так сравнить строка с текущей датой:

var diffInMin = function(dateString) { 
    return (new Date() /* < current date */ - makeDate(dateString))/(1000 * 60); 
}; 

или как это сравнить две даты строки:

var diffInMin = function(dateString1, dateString2) { 
    // this assumes date string one will always be more recent than DateString2 
    return (makeDate(dateString1) - makeDate(dateString2))/(1000 * 60); 
}; 
+0

Что делать, если даты '19-01-2016 22: 18' и' 19-01-2017 22: 18' ваш diff будет '0' – avrahamcool

+0

@avrahamcool Спасибо, что поймали это, я думаю, это новое решение должно работать – pedrotp

+0

@avrahamcool Это хорошо! Но ... мне нужно проверить 1 мин. между двумя датами. Теперь он проверяет в то же время, например. 12:50:50 и 12:50:58 пока зайдите на сайт за последние 2 секунды, но мне нужно «остаться» на сайте 1 минута – Vertisan

0

Попробуйте эту функцию

function diffInMin(dateString1, dateString2){ 
    return (+ new Date(dateString2) - new Date(dateString1))/(1000*60) 
} 
+0

я сделать что-то вроде этого, но всегда я получаю FALSE - HTTP: // jsbin .com/xinaki/edit? js, console – Vertisan

+0

Извините, была допущена ошибка 2 раза была использована функция dateString2. –

+0

Это, к сожалению, не будет работать, потому что даты не соответствуют формату объекта Date(). – pedrotp

Смежные вопросы