在Typescript中转换日期类型

时间:2018-03-08 10:23:56

标签: c angular date typescript

所以我从C#Rest-Server获取数据。数组的一个值是Date类型。当我想用它计算时,例如:

let difference = date1.getTime() - date2.getTime();

我收到以下错误:

  

date1.getTime不是函数

我猜错误是,Date的Java与打字稿的日期不一样。

有没有办法将类型Date(Java)的值转换为Date类型(TypeScript)?

或者我错了,错误是由其他原因造成的?

2 个答案:

答案 0 :(得分:4)

您需要将日期转换为Date Object以便应用其方法。

let difference = new Date(date1).getTime() - new Date(date2).getTime();

答案 1 :(得分:0)

JSON没有日期对象。通常会发送一个字符串,仔细查看您的API提供的内容。有时它是时间戳 - 取决于您的GSON / Jackson / ..配置。时间戳也需要时区偏移,因此我更喜欢带有包含时区的基于字符串的格式。通常它看起来像这样:"2018-03-10T09:06:08.068Z"

您可以通过将此字符串传递给构造函数new Date(dateString)来将其读入JavaScript日期。现在您可以访问这些方法。

Void已经发布了一个vanilla JS实现,但如果你使用lib,它会更容易。我强烈推荐date-fns。它接受字符串,因此无需创建新日期:

differenceInMilliseconds(dateLeft, dateRight)

文档: https://date-fns.org/v1.29.0/docs/differenceInMilliseconds