LINUX.ORG.RU

Как правильно сравнить 2 даты?

 ,


0

1

Необходимо запускать скрипт в определенное время...

var time = moment()
var nextTime = time.clone().add('10', 'minute')

if (time == nextTime) {
  alert('Time to party! ' + time.format())
}

Это не работает почему-то. Предлагают использовать метод diff но я не понял как...

Помогите плиз

time == nextTime

заменить на

time > nextTime

anonymous
()

Можно в unix-time перевести и сравнить числа. Время unix - это обычное число.

hibou ★★★★★
()
var time = moment();
var nextTime = time.clone().add('10', 'minute');

var delta = nextTime.getTime() - time.getTime();
setTimeout(function () {alert('It's time!')}, delta);

Как-то как, код не запускал.

hippi90 ★★★★★
()

time и nextTime — объекты moment. Сравнивать их между собой операторами сравнения бессмысленно.

Сравнить можно с помощью diff:

nextTime.diff(time)
, или же сравнением вручную:
nextTime.valueOf() - time.valueOf()
. Оба варианта вернут разницу в миллисекундах.

Но исходный скрипт в любом случае не будет работать, поскольку нужно сначала вычислить требуемое время, а затем периодически сравнивать его с текущим по таймеру. Если же это серверный скрипт, то лучше будет использовать cron или что-либо подобное.

static_lab ★★★★★
()

Нет тут никаких дат. Есть instant (timestamp). Сравниваются по < или > обычно.

dzidzitop ★★
()
Ответ на: комментарий от surefire

Мода на моду уже вышла из моды.

ПыСы. Лёньке Поцу привет.

dzidzitop ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.