const startDayOfTheWeek: number = moment().startOf('isoweek' as moment.unitOfTime.StartOf).valueOf();
if (this.card.dateScheduled.valueOf() < startDayOfTheWeek) {
this.card.dateScheduled = this.card.dateDue;
}
При использовании valueOf(), this.card.dateScheduled.valueOf() это дает мне значение фактической даты. Не миллисекунды относительно 1970 года (также известные как временная метка/эпоха Unix).
Почему это?
это дает мне фактическое значение даты. ex "2019-04-10T16:00:00Z" Но когда значение datescheduled равно "1970-01-01T00:00:00Z", это дает мне 0, используя значение.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


В moment.js есть много полезных методов для сравнения дат, таких как isAfter, isBefore. Итак, в вашем случае используйте:
if (moment(this.card.dateScheduled).isBefore(startDayOfTheWeek))
Я думаю, вы можете воспользоваться преимуществами встроенной функциональности.
Вот пример сравнения дат в javascript.
const first = +new Date(); // current date
const last = +new Date(2014, 10, 10); // old date
console.info(first);
console.info(last);
// comparing the dates
console.info(first > last);
console.info(first < last);
Что означает «дает мне значение фактической даты» и как вы проверяете, что это за значение?