【问题标题】:Compare Dates in Angular 2 [duplicate]比较Angular 2中的日期[重复]
【发布时间】:2016-04-19 21:55:18
【问题描述】:

我试图弄清楚如何最好地比较 Angular 2 和 TypeScript 1.8.7 中的日期。

给定:

startDate: Date;
endDate: Date;

if(this.startDate.getUTCMilliseconds() === this.endDate.getUTCMilliseconds()){
     //do stuff here
} else {
     // do something else here
}

这将返回类似“startDate.getUTCMilliseconds is not a function...”的错误

有人有最佳实践吗?谢谢,

【问题讨论】:

标签: datetime angular typescript1.7


【解决方案1】:

获取毫秒的日期对象方法称为getTime

【讨论】:

  • 不错的尝试。但是,我们正在处理 javascript 日期。这太合乎逻辑了。如果有来自 Typescript 的干扰,我不知道。 Intellisense 对 getTime 很满意,但 Chrome 却在尖叫 getTime 不是一个函数。
  • someDate.getTime() 在 Chrome 中对我来说很好用。
  • @LargeDachshund 你解决了吗?我有同样的问题
  • Wouter,我没有。我需要这个逻辑来进行字段验证。我放弃了,这变得如此痛苦。如此痛苦的是,您会认为时间之类的东西会非常决定性。相反,有大量的格式化日期可以作为日期传递。所以,我在这个问题上通过了。谢谢你让我重温这个噩梦。
  • getTimeDate 类型的任何其他方法对我不起作用
【解决方案2】:

您可以直接将 Date 对象与 <>== 等运算符进行比较。

this.startDate == this.endDate

【讨论】:

  • 虽然这似乎是正确的答案,但由于这个测试,我不能给出“绿色复选标记”: if this.endDate = new Date("0001-01-01T00:00: 00") 并且 this.startDate 是最小日期,条件应该返回 true。相反,条件返回 false。这是合适的,因为 Java 和 javascript 中的日期是难以理解的。
  • @LargeDachshund 什么测试?
【解决方案3】:

我知道这无关紧要,不是您要求的,但请使用 angular-moment / momentjs。 JS 中的日期是一团糟。

【讨论】:

  • 一般来说,日期看起来一团糟。如果在 TypeScript 对象中有装箱/拆箱日期的最佳做法,我全都听好了。这就是我的目标。
猜你喜欢
  • 2019-01-10
  • 2014-08-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-14
相关资源
最近更新 更多