【问题标题】:PrimeNG Calendar how to handle timezones <p-calendar>PrimeNG 日历如何处理时区 <p-calendar>
【发布时间】:2019-02-14 07:23:29
【问题描述】:

我在使用 PrimeNG 时遇到问题,我有多个用户使用不同时区的表单;但是,我希望 for 的所有用户在 EST 中提交他们的表单日历。似乎在提交表单时,无论他们选择什么日期/时间,它都被转换为浏览器/用户时区。这是如何禁用或实施的?这样当表单通过 JSON 对象提交时,它只保留一个静态时区 (GMT)

当前代码

表单 HTML

<p-calendar required [(ngModel)]="entry.reportedDate" name="reportedDate" #reportedDate="ngModel" [showIcon]="true" [showTime]="true" dateFormat="mm/dd/y 'EST'" hourFormat="24"></p-calendar>

json 对象

{"reportedDate": "2019-02-13T15:00:16.000Z"}

前端 HTML

<td style="border-right:3px solid #a5d891;">{{ m.reportedDate | date: 'EEEE, MMMM d, y, HH:mm'}} EST</td>

因此,当我的其他时区用户使用此表单时,reportedDate 将调整为他们的时区,我不希望这种情况发生。

我只是一个标准时区日期,它从 json 对象传递到我的后端,然后在不进行任何操作的情况下呈现到前端

希望这是有道理的,感谢您的帮助!

【问题讨论】:

    标签: angular date primeng


    【解决方案1】:

    PrimeNG 没有让你指定时区。 但是,您可以自己计算以获得所需的时区,然后提交该值。

    例如,您可以使用 new Date().getTimezoneOffset() 获取用户的时区偏移量,并将与 EST 时间的差异添加到日期值中。

    另外,您应该使用&lt;td&gt; {{ m.reportedDate | date: 'EEEE, MMMM d, y, HH:mm':'-500' }} EST &lt;/td&gt; 以美国东部标准时间显示时间。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-17
      • 2021-02-22
      • 1970-01-01
      相关资源
      最近更新 更多