creationDate.getTime 在比较日期时不是一个函数



我正在尝试创建一个返回已过去天数的函数。目前,测试通过,但也失败。

这是我在一个名为application.service.ts的类中的函数

private getElapsedDays(creationDate: Date) {
const creationTime = creationDate.getTime();
const currentTime = new Date().getTime();
const elapsedTime = currentTime - creationTime;
return Math.ceil(elapsedTime / (1000 * 60 * 60 * 24));
}

这是 application.service.spec.ts 内部的测试

describe("getElapsedDays", () => {
test("returns correct elapsed days", () => {
const oneWeekAgo = new Date();
oneWeekAgo.setDate(oneWeekAgo.getDate() - 7);
const elapsedDays = applicationService["getElapsedDays"](oneWeekAgo);
expect(elapsedDays).toBe(7);
});
});

所以基本上这个测试套件运行良好并且通过得很奇怪(它返回数字 7),但我仍然收到实际函数本身的错误。

TypeError: creationDate.getTime is not a function
99 | 
100 |   private getElapsedDays(creationDate: Date) {
> 101 |     const creationTime = creationDate.getTime();
|                                       ^
102 |     const currentTime = new Date().getTime();
103 |     const elapsedTime = currentTime - creationTime;
104 |     return Math.ceil(elapsedTime / (1000 * 60 * 60 * 24));

任何帮助将不胜感激!

尝试使用这个:

describe("getElapsedDays", () => {
test("returns correct elapsed days", () => {
const date = new Date();
const oneWeekAgo = new Date(date.getFullYear(), date.getMonths(), date.getDate() - 7);
const elapsedDays = applicationService["getElapsedDays"](oneWeekAgo);
expect(elapsedDays).toBe(7);
});
});

我设法让它工作。所以我正在使用 Typescript,但只是将 Date 类型转换为creationDate确实会成为它的实例。相反,我不得不把它包裹在一个新的new Date()

所以这就是对我有用的东西,并通过了所有的测试。

private getElapsedDays(creationDate: Date) {
const creationTime = new Date(creationDate).getTime();
const currentTime = new Date().getTime();
const elapsedTime = currentTime - creationTime;
return Math.floor(elapsedTime / (1000 * 60 * 60 * 24));
}

相关内容

  • 没有找到相关文章

最新更新