Javascript/Typescript:比较日期、字符串和时刻变量

Javascript/Typescript:比较日期、字符串和时刻变量,javascript,angular,typescript,momentjs,angular10,Javascript,Angular,Typescript,Momentjs,Angular10,我正在比较两个日期变量 无论出于何种原因,从C#API到Javascript,它们有时会转换为1)字符串或2)日期甚至3)时刻,这是由于以前的公司代码 Typescript在下面的界面中声明它们是Date,但在Javascript运行时,它会改变 那么现在,在比较两个日期时,有没有一种简单的方法来简化下面的代码? 将所有内容转换为日期,并执行getTime()比较 export interface Product { productName?: string; recordDat

我正在比较两个日期变量

无论出于何种原因,从C#API到Javascript,它们有时会转换为1)
字符串
或2)
日期
甚至3)
时刻
,这是由于以前的公司代码

Typescript在下面的界面中声明它们是
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;
}
使用角度环境

资源:


您可以使用
力矩
。只需传递
字符串
日期
时刻
值:

dateVar1=moment(product1.recordDate.toDate();
工作示例

const stringDate=“2020-08-01”//一串
const dateDate=新日期();//日期
const momentDate=力矩();//瞬间
log(矩(stringDate.toDate());
log(矩(dateDate.toDate());
log(moment(momentDate.toDate())

您可以使用
力矩
。只需传递
字符串
日期
时刻
值:

dateVar1=moment(product1.recordDate.toDate();
工作示例

const stringDate=“2020-08-01”//一串
const dateDate=新日期();//日期
const momentDate=力矩();//瞬间
log(矩(stringDate.toDate());
log(矩(dateDate.toDate());
log(moment(momentDate.toDate())