Сравнение даты и времени с использованием javasctipt

0

Я пытаюсь сравнить две даты с помощью javascript, формат даты и времени приведен ниже. Вот я хочу проверить date1> date2.Как я могу достичь этого в javascript.

 var date1='2014-03-25 07:30 AM';
 var date2='2014-03-25 04:30 PM';
  • 1
    возможный дубликат: stackoverflow.com/questions/11170054/…
  • 0
    Вам нужно будет по-разному форматировать эти строки даты, прежде чем создавать новые объекты Date, которые работают в кросс-браузерном режиме.
Теги:

4 ответа

0

Это должно работать:

    var date1 = '2014-03-25 07:30 AM';
    var date2 = '2014-03-25 04:30 PM';
    console.log((new Date(date1)) >= (new Date(date2)));

EDIT: Op правильно указал, что код выше не работает (например, в FireFox, но он работает в Chrome). Я прочитал, что

new Date() // current date and time
new Date(milliseconds) //milliseconds since 1970/01/01
new Date(dateString)
new Date(year, month, day, hours, minutes, seconds, milliseconds)

являются действительными экземплярами для Date здесь.

Однако строки даты, используемые для date1 и date2 в примере, недопустимы, поэтому не поддерживаются во всех браузерах.

Вместо "2014-03-25 07:30 AM" (что неверно) вы должны сделать одно из следующего:

  • конвертировать ваш вход в миллисекунды
  • конвертируйте свой ввод в строку даты, например "13 октября 1975 года 11:13:00",
  • рассчитать год, месяц, день, часы, минуты, секунды и миллисекунды, затем передать их в экземпляр
  • 0
    не работает новая дата (date1) дает недействительную дату
  • 0
    @ user1851420, пожалуйста, смотрите мой отредактированный ответ.
0

Как это -

if((new Date(date1).getTime()) > (new Date(date2).getTime())){
 // do something
}
0

Пожалуйста, попробуйте это.

if (new Date(date1) > new Date(date2)) 
  • 0
    получение недействительной даты
  • 0
    Я проверил это, оно работает хорошо. Я также отправляю вам сценарий, в котором я провел тестирование. function func () {var date1 = '2014-03-25 07:30 AM'; var date2 = '2014-03-25 16:30 PM'; if (новая дата (date1)> новая дата (date2)) {alert ('date1' + date1); оповещение («date2» + date2); } else if (новая дата (date1) <новая дата (date2)) {alert ('else date1' + date1); оповещение («еще дата2» + дата2); }}
Показать ещё 6 комментариев
0

Использовать getTime:

 if ((new Date(date1).getTime()) > ( new Date(date2).getTime())){
 }
  • 0
    если я делаю это предупреждение (новая дата (date1) .getTime ()) я получаю NaN
  • 0
    Это может произойти, только если date1 - это не то, что вы утверждаете. Можете ли вы сделать alert(date1) ?
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню