Date.parse()
не возвращает экземпляр Date
.Вместо этого он возвращает целое число, представляющее количество миллисекунд с начала эпохи.Или, если все, что было передано, не может быть проанализировано, оно вернет NaN
.
. В вашем коде current_date
является экземпляром Date
.Очевидно, что объект даты разбирается как дата.Когда вы выходите из системы, он вызывает toString()
для этого объекта даты, чтобы выяснить, как его зарегистрировать.
Но expiration
- это не Date
, это строка.И JS env платформы, на которой вы работаете, не распознает этот формат строки как разбираемую строку даты.
Я бы предложил вместо этого хранить даты как целые числа.dateObj.getTime()
или Date.now()
будут возвращать целые числа, которые вы можете сохранить, а затем превращать их обратно в объект реальной даты так же просто, как:
myDate = new Date(parseInt(dateIntegerAsString, 10));
, который будет надежно работать на кроссплатформенных, и, вероятно,намного быстрее, чем более точный анализ даты, который вы здесь собираетесь.