Nat*_*ing 6 php datetime date php-carbon
这是场景 - 我将PHP中的默认时区设置为UTC.我使用的所有日期/时间都设置为当前的UTC时间; 如果稍后显示,我会为该特定用户设置时区,并在其时区中显示日期.效果很好.
除了我有一个日期/时间,用户可以在表格上输入.它在24小时内以"YYYY-MM-DD HH:MM"形式出现(例如:"2014-09-18 17:00").用户自然将此时间设置为他们的时区,而不是UTC.
如果我使用输入值创建一个新的DateTime对象,它将以UTC格式保存,因此在稍后显示时会关闭几个小时(取决于原始时区).如果我在新对象上设置时区,它会改变该值,再次假设输入值为UTC.
我做了一些谷歌搜索,但没有发现任何关于PHP的问题(我找到了C#的几个答案).这可能与DateTime对象(或使用Carbon)有关吗?我是否坚持根据用户当前时区手动添加/减少小时数以将其置于UTC中?
Gla*_*vić 11
您必须在创建DateTime对象时设置时区,而不是在创建对象时设置时区; 然后将DateTime对象更改为时UTC区并将其保存到db:
# create DateTime based on user timezone
$dt = new DateTime('2014-09-18 17:00', new DateTimezone('Australia/Sydney'));
# change time to UTC timezone
$dt->setTimezone(new DateTimezone('UTC'));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4349 次 |
| 最近记录: |