如何在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)