【发布时间】:2012-02-24 08:22:00
【问题描述】:
我使用php的date_default_timezone_set()并根据用户表中用户的timezone字段进行设置。因此,我可以轻松地向用户显示日期/时间并从他们那里获取日期/时间。
但是为了在数据库中存储与日期相关的值,我必须使用标准的 GMT 时区。
问题:在 user_timezone 和 GMT 之间切换的最佳或标准方式是什么?
当我想在数据库中插入或更新字段时,您是否建议我按照这些步骤操作?
- 使用
date_default_timezone_set('GMT');更改时区 - 使用
$inserttimestap = time();或$inserttimestamp = mktime();获取时间 - 使用
date_default_timezone_set($this->session->userdata('timezone'));将时区改回用户默认值
【问题讨论】:
-
我想说最好的方法是不要误用默认的时区设置,因为它会浪费给用户,而是让应用程序知道如何向用户显示日期或时间。
-
据我研究,根据用户设置
date_default_timezone_set()看起来并不是误用。如果我不这样做,我会在处理 user_timezone 以读取和显示日期/时间时遇到很多麻烦。此外,我编写的应用程序不使用公历。它应该使用波斯(Jalali)日期。所以如果我不想根据用户时区设置默认时区,我的问题会增加。 -
可能是,我只称它为误用。您可以将我的声明转为 180,然后它仅意味着当您存储时间时,您需要有应用程序时区(这是固定的,例如 GMT)。就这样。因此,当您存储将日期转换为 GMT 时间戳并读取时,将其转换回用户时间戳。就是这样。
标签: php datetime timezone timestamp