【发布时间】:2021-02-03 05:18:08
【问题描述】:
我有接受日历日期的前端,格式如下:9/02/2021 11:00 AM
然后转换成这些格式:2021-02-09 11:00,然后通过这行代码转换成:
var timeStamp = new Date('2021-02-09 11:00').getTime() / 1000;
我知道这些产生时间在这个值:1612843200
现在在后端,我想读取那个时间值,并将其转换回 Y-m-d H:i 格式,我尝试了date('Y-m-d H:i', '1612843200'),但结果是2021-02-09 04:00
我的目的是将时间恢复为日期格式,并稍后将时区设置为 UTC,但在将时区设置为 UTC 之前,我在第一部分中遇到了麻烦
我怎样才能重新找回日期?
【问题讨论】:
-
我从您的问题中了解到,在将秒数转换为 Y-M-D H:M 格式时,您需要得到
11:00 AM而不是04:00?我说的对吗? -
是的,一小时错过了 7 小时,为什么会这样?
-
看看发生了什么,浏览器正在使用特定时区进行转换,当您将这些 秒 发送到后端时,您使用的是特定时区,因此PHP 转换为您在后端设置的时区。 浏览器时区和后端时区的区别
-
如果是这样,我们该如何解决?就像我们可以在保存到数据库之前在 js 中设置时区一样吗?所以我们确切地知道时区并使用它
-
Intl.DateTimeFormat().resolvedOptions().timeZone 是要走的路!我检查了一下,它返回时区,你能用 Intl.DateTimeFormat().resolvedOptions().timeZone 写你的答案,然后将时区更改为 utc 吗?我会接受这个作为正确答案@NotABot,谢谢
标签: javascript php date