3

Здравствуйте. Есть сегодняшняя дата:

var nowDate = new Date()

И есть некая другая дата otherDate.
Вопрос: Как определить, otherDate это вчера, или это еще раньше (больше одного дня назад)?
Да, и еще, как определить сегодняшнюю дату?

3 ответа 3

7
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 {
    // сегодня или потом
}
2
  • Спасибо! Красиво и удобно. 19 дек 2011 в 13:48
  • 1
    А точно там 864000000? нолик не лишний?
    – jackrv
    1 мар 2015 в 11:58
4

Если кратко:

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
1
  • И это круто! Спасибо за ответ. 19 дек 2011 в 13:50
3

Определить сколько дней прошло с даты otherDate по nowDate

otherDate=new Date(2011,11,10);
nowDate= new Date();
delta=nowDate.getTime()-otherDate.getTime();
alert("Прошло "+Math.floor(delta/1000/60/60/24)+" дней");

Ваш ответ

By clicking “Отправить ответ”, you agree to our terms of service and acknowledge you have read our privacy policy.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками или задайте свой вопрос.