如何在typescript中区分日期?

如何在typescript中区分日期?,typescript,Typescript,我的职能 export const dateToDays = async (date: string): Promise<number | null> => { if (date === "") return null; const now: Date = new Date(date); const start: Date = new Date(now.getFullYear(), 0, 0); const diff = now -

我的职能

export const dateToDays = async (date: string): Promise<number | null> => {
  if (date === "") return null;
  const now: Date = new Date(date);
  const start: Date = new Date(now.getFullYear(), 0, 0);
  const diff =
    now - // ERROR
    start + // ERROR
    (start.getTimezoneOffset() - now.getTimezoneOffset()) * 60 * 1000;
  const oneDay = 1000 * 60 * 60 * 24;
  const day = Math.floor(diff / oneDay);
  if (!day) return null;
  return Number(day);
};

算术运算不适用于
日期
类型,这就是您的
现在
开始
的类型,这就是错误的原因。看起来您希望日期之间的差异以毫秒为单位,因此请执行以下操作:

export const dateToDays=async(日期:字符串):Promise=>{
如果(日期==“”)返回空值;
现在施工:日期=新日期(日期);
const start:Date=新日期(now.getFullYear(),0,0);
常数差=
现在。getTime()
start.getTime()+
(start.getTimezoneOffset()-now.getTimezoneOffset())*60*1000;
const one day=1000*60*60*24;
施工日=数学楼层(差异/一天);
如果(!day)返回空值;
报税号码(天);
};
另一种方法是在
日期之前使用一元
+
now
start
日期转换为毫秒。以下是如何:

export const dateToDays=async(日期:字符串):Promise=>{
如果(日期==“”)返回空值;
现在施工:日期=新日期(日期);
const start:Date=新日期(now.getFullYear(),0,0);
常数差=
+现在-
+开始+
(start.getTimezoneOffset()-now.getTimezoneOffset())*60*1000;
const one day=1000*60*60*24;
施工日=数学楼层(差异/一天);
如果(!day)返回空值;
报税号码(天);
};
The left-hand side of an arithmetic operation must be of type 'any', 'number', 'bigint' or an enum type.ts(2362)