gpt4 book ai didi

php - 处理时区和日期

转载 作者:行者123 更新时间:2023-11-29 21:20:02 25 4
gpt4 key购买 nike

我在根据日期(无时间)存储和检索信息以及处理多个时区时遇到问题。

默认情况下,我的应用程序使用 UTC,因此创建/更新时间均采用 UTC,并且 PHP 函数(例如日期等)均使用 UTC。

我的问题是这样的:

我允许用户创建一个新闻项,该新闻项有一个日期(没有时间,只有日期)。

应用程序使用 UTC,我的用户在悉尼,所以我所做的就是在加载表单时,我根据 jS M Y澳大利亚/悉尼<预填充日期字段/em> 时区,这样对他来说就显示为今天。到目前为止一切都很好。

当我将记录保存到数据库(日期字段)时,我使用他们输入的日期,因此如果他们说 2016 年 3 月 3 日,那么它就会输入为 2016-03-03。

当它再次被拉出时,它对他们来说显示得很好,但是如果我做一份报告说“今天发布了多少新闻项目?”,在我的报告(cron 作业)中它可能会寻找不同的日期,因为如果此人是在清晨输入的,那么悉尼的 2016 年 3 月 3 日仍为 UTC 时间的 2016 年 3 月 2 日,因此今天的时间为 0。

看起来的解决方案是在存储日期时将日期转换回 UTC,但是这将如何工作?...因为它只是一个没有时间的日期。

2016 年 3 月 2 日 00:00:00 UTC 为 2016 年 3 月 2 日 10:00:00 悉尼

所以..我不知道如何解决这个问题,而不需要他们也输入时间,这似乎是多余的。

最佳答案

请始终记住,储蓄时间规则因国家/地区而异,例如美国和欧盟。不仅是时钟发生变化,而且跨时区的变化时间也发生变化。

过去我强制使用本地时间 12:00(中午)。对于时间值,可以使用标准转换例程。选择中午可以让一切远离任何午夜和储蓄时间问题,因为无论哪种方式,小时的流逝仍然在同一天。

关于php - 处理时区和日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35762477/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com