Сравнение дат.
И есть некая другая дата otherDate .
Вопрос: Как определить, otherDate это вчера, или это еще раньше (больше одного дня назад)?
Да, и еще, как определить сегодняшнюю дату?
Отслеживать
51.2k 86 86 золотых знаков 266 266 серебряных знаков 505 505 бронзовых знаков
задан 19 дек 2011 в 12:39
Anton Mukhin Anton Mukhin
5,515 9 9 золотых знаков 51 51 серебряный знак 92 92 бронзовых знака
3 ответа 3
Сортировка: Сброс на вариант по умолчанию
var now = new Date()
var today = new Date(now.getFullYear(), now.getMonth(), now.getDate())
var yesterday = new Date(today.valueOf() - 86400000);
сравнение как в вопросе:
var now = new Date() var today = new Date(now.getFullYear(), now.getMonth(), now.getDate()).valueOf() var other = otherDay.valueOf() if (other < today - 86400000) < // 24*60*60*1000 // раньше чем вчера >else if (other < today) < // вчера >else < // сегодня или потом >
Отслеживать
27 6 6 бронзовых знаков
ответ дан 19 дек 2011 в 13:44
489 3 3 серебряных знака 8 8 бронзовых знаков
Спасибо! Красиво и удобно.
19 дек 2011 в 13:48
А точно там 864000000? нолик не лишний?
1 мар 2015 в 11:58
d1 = new Date('2010-10-10'); d2 = new Date('2010-10-09'); dm = d1 - d2; if ( dm > 86400000 ) alert('Вчера--'); else alert('Позже чем вчера');
prev = ( new Date( ( new Date() ).toDateString() ) - 86400000 ); // 24*60*60*1000
Отслеживать
27 6 6 бронзовых знаков
ответ дан 19 дек 2011 в 13:45
6,539 12 12 серебряных знаков 20 20 бронзовых знаков
И это круто! Спасибо за ответ.
19 дек 2011 в 13:50
Определить сколько дней прошло с даты otherDate по nowDate
otherDate=new Date(2011,11,10); nowDate= new Date(); delta=nowDate.getTime()-otherDate.getTime(); alert("Прошло "+Math.floor(delta/1000/60/60/24)+" дней");
Отслеживать
ответ дан 19 дек 2011 в 13:48
229 1 1 серебряный знак 2 2 бронзовых знака
-
Важное на Мете
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.10.27.43697
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Строковое сравнение дат на JavaScript
Пусть у нас есть две даты в следующем текстовом формате:
let date1 = ‘2020-12-01’; let date2 = ‘2019-12-01’;
В таком случае можно выполнить сравнение этих дат и узнать, какая из этих дат больше:
console.log(date1 > date2); // выведет true
Каким образом происходит сравнение этих дат? Дело в том, что наши даты представляют собой строки и JavaScript сравнивает их как строки. То есть он сначала сравнивает первые символы двух дат: если они одинаковы, то JavaScript сравнивает вторые символы, и так далее, пока не найдет отличия. Благодаря тому, что в нашем формате даты сначала расположен год, потом месяц, а потом день, и возможно такое сравнение.
Дело в том, что если цифра первого года оказывается больше цифры второго года, значит уже не имеет значения, что там с месяцами и днями — первый год точно больше. Если же годы совпадают, то больше будет та дата, у которой больше месяц. А если и месяцы совпадают, то больше будет та дата, у которой больше день. Ну, а если и дни одинаковы, то и даты равны.
Важно также, чтобы даты были в одном формате. В нашем случае разделителями частей дат являются дефисы. Это, конечно же, не обязательно. Например, можно поставить точки:
let date1 = ‘2020.12.01’; let date2 = ‘2019.12.01’;
Или вообще убрать разделители:
let date1 = ‘20201201’; let date2 = ‘20191201’;
Главное, чтобы сравнение было корректным, размещение должно быть следующим: сначала год, потом месяц, потом день.
Напишите код, который сравнит две приведенные ниже даты и выведет сообщение о том, какая из них больше:
Как сравнить две даты 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
Сравните две даты в JavaScript
В этом посте мы обсудим, как сравнить две строки даты в JavaScript. Решение должно определить, является ли первая строка даты больше, меньше или равна второй строке даты.
Предположим, что заданные строковые значения представляют допустимую дату, указанную в формате, соответствующем версии ИСО 8601 календарная дата.
1. Использование объекта даты
Здесь идея состоит в том, чтобы преобразовать заданные строки в Date объекты с помощью Date() конструктор. Затем сравните оба Date объекты, использующие операторы отношения > , < , = . Следующий пример демонстрирует.