如何解决“日期”不是instanceof日期问题?

时间:2019-07-17 12:27:54

标签: angular typescript date ngx-bootstrap

在对ngx-bootstrap-bsDatepicker控件和FormGroup中的“无效日期”进行故障排除时,我发现了所使用的对象(this.ts.startDateTime)上的日期值存在问题。与new Date()对象比较时。

08:11:03.723 ts-form.component.ts:240 HZyWZhwowB - this.ts.startDateTime 2019-07-16T20:18:24.9133333
08:11:03.724 ts-form.component.ts:242 HZyWZhwowB - testDate Wed Jul 17 2019 08:11:03 GMT-0400 (Eastern Daylight Time)
08:11:03.724 ts-form.component.ts:244 HZyWZhwowB - this.ts.startDateTime instanceof Date false
08:11:03.725 ts-form.component.ts:246 HZyWZhwowB - testDate instanceof Date true

有问题的属性是:

/**
  * Gets or sets the start date.
  */
startDateTime: Date;

很容易看到值是不同的。我的对象是从HTTP请求到WebAPI控制器接收的数据,而打字稿接口是从WebAPI中的模型生成的。对于大多数应用程序,对象的Date值在其当前状态下工作。

在Angular应用程序中解决此问题并将此值转换为实际日期的最佳方法是什么?

Angular 5-ASP.NET API
momentjs存在于应用程序中,但当前未在我的组件中使用。

1 个答案:

答案 0 :(得分:1)

ts.startDateTime是一个字符串,因此您必须转换为Date对象:

let myDate = new Date(this.ts.startDateTime);

请记住遵循与您一样的标准(ISO 8601),以避免破坏上面的代码。