Я сравниваю две переменные даты.
По какой-то причине, от C# API до Javascript, они иногда конвертируются как 1) string
или 2) Date
или даже 3) Moment
из-за предыдущей балансовой единицы.
В машинописном тексте указано, что они Date
в интерфейсе ниже, но в Javascript времени выполнения это изменяется.
Итак, теперь, при сравнении двух дат, есть ли простой способ упростить код ниже? Преобразование всего в дату и проведение сравнения getTime()
.
export interface Product {
productName?: string;
recordDate?: Date;
}
if (product1.recordDate instanceof Date) {
dateVar1 = product1.recordDate;
} else if (typeof product1.recordDate === 'string') || product1.recordDate instanceof String)) {
dateVar1 = new Date(product1.recordDate);
} else if (product1.recordDate instanceof moment) {
dateVar1 = ((product1.recordDate as any) as moment.Moment).toDate();
}
if (product2.recordDate instanceof Date) {
date2Var = product2.recordDate;
} else if (typeof product2.recordDate === 'string') || product2.recordDate instanceof String)) {
date2Var = new Date(product2.recordDate);
} else if (product2.recordDate instanceof moment) {
date2Var = ((product2.recordDate as any) as moment.Moment).toDate();
}
if date1Var.getTime() === date2Var.getTime() {
return true;
} else {
return false;
}
с использованием среды Angular,
Ресурсы:
Преобразование строки в дату в JavaScript