所以我从C#Rest-Server获取数据。数组的一个值是Date类型。当我想用它计算时,例如:
let difference = date1.getTime() - date2.getTime();
我收到以下错误:
date1.getTime不是函数
我猜错误是,Date
的Java与打字稿的日期不一样。
有没有办法将类型Date
(Java)的值转换为Date
类型(TypeScript)?
或者我错了,错误是由其他原因造成的?
答案 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