PHP输出本地时区调整后的DateTime
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了PHP输出本地时区调整后的DateTime,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1145字,纯文字阅读大概需要2分钟。
内容图文
我的印象是PHP DateTime类的format()函数导出了最初传递的时间戳,并且应用了正确的偏移量.
我已经意识到这样做是没有意义的.因此,我希望将数据库中的时间戳(UTC)与用户的时区一起存储,并能够根据我是否需要UTC日期或用户时区调整日期来输出它.
我已经开始扩展DateTime类来执行此操作,但我想知道我是否在DateTime中的现有方法中缺少某些东西,或者为什么DateTime类以它的方式工作的思维过程.
据推测,我还需要一些静态工厂方法,它们可以采用时间戳,时区以及传入的时间戳是用户调整的时间戳还是UTC时间戳,并且能够进行必要的调整以实例化标准化的DateTime对象.传入时间的UTC版本.通过这种方式,我可以在UI和数据库周围抛出时间戳,并能够在它们之间进行适当的转换.
有更简单的方法吗?我见过date_default_timezone_set函数,但我想避免让该设置影响整个脚本,导致用户调整的时间存储在DB中.
(我将用户的时区存储在数据库中作为时区字符串,例如Europe / Berlin,从用户会话变量传入函数.我还打算将所有日期时间存储为UTC时间并保留服务器的php.ini也设置为UTC.)
解决方法:
您可以创建DateTime实例,指定它是UTC.然后使用setTimeZone()将其时区更改为用户的时区.
$datetime = new DateTime("2011-06-07 12:34:56", new DateTimeZone("UTC"));
$datetime->setTimeZone(new DateTimeZone("Europe/Berlin"));
echo $datetime->format(DateTime::RSS);
内容总结
以上是互联网集市为您收集整理的PHP输出本地时区调整后的DateTime全部内容,希望文章能够帮你解决PHP输出本地时区调整后的DateTime所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。