【问题标题】:Date format coming wrong日期格式出错
【发布时间】:2019-06-30 02:19:16
【问题描述】:

vr_date :日期

alert(this.vr_date) // 结果显示 Thu Feb 07 2019 00:00:00 GMT+0400

var json = JSON.stringify(this.vr_date);

警报(json); // 结果显示 2019-02-06T20:00:00.000Z 看到日期出错了

输出日期显示 06 而不是 07

我的html

<input matInput 
   [(ngModel)]="vr_date" 
   name="vr_date"  
   [matDatepicker]="myDatepicker" 
   matInput 
   placeholder="Vr Date" 
   [readonly]="true" >
<mat-datepicker-toggle matSuffix [for]="myDatepicker" ></mat-datepicker-toggle>
<mat-datepicker #myDatepicker></mat-datepicker>

【问题讨论】:

标签: javascript angular


【解决方案1】:

看起来时区不同。在第一个警报中,您将获得第 7 天,时间 00:00,GMT +4。在第二个警报中,您获得了日期对象的定义(以 GMT 格式存储)。现在,如果您从第一个警报中减去 +4 小时,您会得到第二个警报:天:06,时间 20:00。

【讨论】:

  • 这取决于您尝试使用该序列化 json 做什么。如果您想存储或传输它,可以这样(最佳做法是将日期时间存储在 GMT(实际上是 UTC)中,并根据用户时区进行转换。)。当您将其转换回日期/时间时,对象将根据本地时区进行更新
  • 请记住,字符串化过程是好的(第二个警报的输出是好的),这是日期对象内的值。在您的计算机上,渲染将在您的本地时间显示日期,在我的计算机上以我的本地时间显示。
【解决方案2】:

我喜欢使用 this.vr_date.setHours(this.vr_date.getHours() - this.vr_date.getTimezoneOffset() / 60);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-27
    • 1970-01-01
    • 2015-06-28
    • 1970-01-01
    相关资源
    最近更新 更多