Как сравнить две даты js
Чтобы сравнить даты, можно их преобразовать в объекты Date и сравнить обычным способом. Однако если даты одинаковые, то они не будут равны, так как сравнение идёт по ссылкам. Чтобы добиться корректного сравнения дат, можно использовать метод getTime() :
const firstDate = new Date('2022-03-15'); const secondDate = new Date('2022-03-13'); console.log(firstDate secondDate); // false console.log(firstDate > secondDate); // true const equalDate1 = new Date('2022-03-13'); const equalDate2 = new Date('2022-03-13'); console.log(equalDate1.getTime() == equalDate2.getTime()); // true
Сравнение дат
Раньше знаю надо было переводить в разные таймштампы, но похоже сейчас, если задать дату именно в таком формате. все должно быть ок, разве не так?
Отслеживать
14.3k 1 1 золотой знак 22 22 серебряных знака 35 35 бронзовых знаков
задан 2 окт 2011 в 15:44
Mykhaylo Petyakh Mykhaylo Petyakh
65 1 1 золотой знак 2 2 серебряных знака 7 7 бронзовых знаков
Врядли потому что в таком случае вы сравниваете строки.
2 окт 2011 в 17:33
@AlexWindHope Неправда! Сравните это $curdate = date(‘d.m.Y’, strtotime(‘now’)); $revenge_date = «25.05.2015»; если будут первые числа месяца, то они будет меньше 25, хоть и год будет больше. И код будет работать неправильно!
27 апр 2015 в 19:22
3 ответа 3
Сортировка: Сброс на вариант по умолчанию
Если обе даты точно в формате Y-m-d (или Y-m-d H:i:s ), то логично сравнивать их как строки, т.е.
$date1='2011-02-12'; $date2='2012-02-13'; $result=($date1<$date2); //$result === true
Но если нет уверенности, что формат дат одинаковый, то лучше привести их к формату unixtime и сравнивать как числа:
$date1='2011-02-12'; $date2='13.02.2012'; $result=($date1<$date2); //$result === false $result=(strtotime($date1)
Отслеживать
20.7k 4 4 золотых знака 28 28 серебряных знаков 50 50 бронзовых знаков
ответ дан 2 окт 2011 в 20:52
196 7 7 бронзовых знаков
Ну практически то же что и я написал только в коде, согласен
3 окт 2011 в 6:02
> Если даты точно в одном формате, то логично сравнивать их как строки, т.е. Это не совсем так. Что бы сравнение строк работало корректно, нужно не только, что бы формат совпадал, но и что бы этот формат соответствовал стандарту ISO 8601, по которому дата записывается по убыванию значимости. Т.е. вариант date('d.m.Y') >= '02.11.2011' уже работать не будет, хоть формат и совпадает.
Как сравнить 2 даты
Может и брежу но тем не менее
Если Дата>ДатаРассмотрения тогда
ОформлениеСтроки.ЦветФона=Новый Цвет (255,200,200);
КонецЕсли
КонецПроцедуры
: Переменная не определена (Дата)
Если >Дата>ДатаРассмотрения тогда
: Переменная не определена (ДатаРассмотрения)
Если Дата>>ДатаРассмотрения тогда
Так ведь написано - "Переменная не определена.
Где ДатаРассмотрения вычисляется?
Код выше покажи.
Документ.Обращение.Форма.ФормаСписка - тама список какой то.
значится надо брать оттуда текущую строку, и уж с ней работать.
(5) жесть - как на основании этого можно было родить такой вопрос?
(5) этот кусок кода из какого то события вызывается?
Согласен . Есть список документов (обращения) туда ставляем этот код для того что бы если событие выполняется тогда поля окрашиваются в красный цвет
Теперь сделал вот так
Если ДокументСписок.Дата>ДокументСписок.ДатаРассмотрения тогда
ОформлениеСтроки.ЦветФона=Новый Цвет (255,200,200);
КонецЕсли
И тем не меннее
Документ.Обращение.Форма.ФормаСписка(4)>: Поле объекта не обнаружено (Дата)
Если ДокументСписок.Дата>ДокументСписок.ДатаРассмотрения тогда
(12) Сча попробую
(13) : Значение не является значением объектного типа (Дата)
Если ЭлементыФормы.ДокументСписок.ТекущиеДанные.Дата>ЭлементыФормы.ДокументСписок.ТекущиеДанные.ДатаРассмотрения тогда
Документ.Обращение.Форма.ФормаСписка(4)>
(15) Ты хочешь, чтоб при открытии формы списка автоматом перекрасились строки? Если да, тогда тебе надо все это впихнуть в событие формы списка "ПриВыводеСтроки"
(16) Я так и сделала но ругается на : Значение не является значением объектного типа (Дата) Не занеш почему?
Я чувствую истина где то рядом может хто подскажет тогда что такое: Значение не является значением объектного типа (Дата)?
Как в Javascript сравнить две даты?
Как их сравнить и определить какая больше, какая меньше вплоть до минут?
- Вопрос задан более трёх лет назад
- 34515 просмотров
Комментировать
Решения вопроса 2

реактовцы - это не девы, а прокидыватели пропсов
Если даты в формате ISO, то
new Date('2011-10-10T14:48:00') > new Date('2011-10-10T10:48:00'); // true
Ответ написан более трёх лет назад
Нравится 2 1 комментарий
так лучше не делать, но если даты одинаковые - они не будет равны, так как сравнение идет по ссылкам. Лучше использовать для сравнения метод .getTime() дат, или библиотеки вроде date-fns
new Date('2016-09-23 22:20') и сравнивайте.
Ответ написан более трёх лет назад
Комментировать
Нравится Комментировать
Ответы на вопрос 1

var firstDate = '23.09.2016 22:20'; var secondDate = '01.10.2016 00:00'; var datetime_regex = /(\d\d)\.(\d\d)\.(\d\d\d\d)\s(\d\d):(\d\d)/; var first_date_arr = datetime_regex.exec(firstDate); var first_datetime = new Date(first_date_arr[3], first_date_arr[2], first_date_arr[1], first_date_arr[4], first_date_arr[5]); var second_date_arr = datetime_regex.exec(secondDate); var second_datetime = new Date(second_date_arr[3], second_date_arr[2], second_date_arr[1], second_date_arr[4], second_date_arr[5]); if(first_datetime.getTime() > second_datetime.getTime()) < console.log('первая дата больше'); >else