管理PHP,MySQL等日期的最佳方法是什么?

5 php mysql time timezone date

我的服务器在达拉斯.我在纽约市.. PHP和MySQL都有配置变量来设置时区.

我如何让他们一起工作?我应该在MySQL中存储哪些日期?如何根据用户的偏好让PHP处理更改日期?

请记住:我认为我没有让PHP明确设置日期,它总是在查询中使用"NOW()"但是我预见到需要这样做.怎么做?

我希望通过这些经验可以帮助我.

vav*_*ava 16

到处使用Unix时间.它使用UTC,因此每个时区都是一样的.日期的方法通常使用他们拥有的时区信息转换为它并从中返回,因此您可以拥有正确的时间.

或者,您只能使用Unix时间将时间从一台计算机传输到另一台计算机(例如从数据库到运行PHP的服务器或JavaScript客户端).有各种语言可以转换为它和它的功能.对于MySQL,它是:

UNIX_TIMESTAMP(date)
FROM_UNIXTIME(unix_timestamp)
Run Code Online (Sandbox Code Playgroud)

这样你就可以在数据库和日志中正确格式化你的时间,但到处都有正确的本地时间.

  • 请注意:在2038年1月19日,由于32位溢出,Unix时间戳将停止工作.在此之前,数以百万计的应用程序需要采用新的时间戳约定或迁移到64位系统,这将花费更多的时间来购买时间戳. (4认同)

Sov*_*iut 0

以 GMT(零偏移)记录日期,然后根据当地时区计算偏移(例如,EST 为 +6,因此您需要在 GMT 基础上添加 6 小时)。

检查该函数的日期文档date_default_timezone_set()

请记住,写入数据库时​​,您必须更改时区,存储日期,然后再更改回来。同样,当您检索日期时,不要忘记添加时区偏移量。