有没有办法让我告诉strtotime()函数不要改变我把它交给BST的时间?即如果
date('g.ia', strtotime("2014-06-25T19:30"))
我希望在晚上7点半到达,就像我进入
一样date('g.ia', strtotime("2014-06-25T19:30"))
(第一个目前返回下午6:30)
我知道我可以写一天/月的手动检查,如有必要可以加一小时,或者只是从字符串中解析时间,但两种解决方案听起来都有些混乱(我要做的)这在很多地方)。
对不起,如果有一些明显的东西我不见了,这是一个很新的php
答案 0 :(得分:3)
功能date()
将根据您的时区设置格式化时间。说,你的例子没有意义,因为strtotime()
将使用当前时区设置将输入转换为unix时间戳,然后函数date()
将再次使用该时区设置来格式化时间戳。您必须在strtotime()
和date()
函数调用之间更改时区设置,例如this demo。
你可以简单地使用DateTime扩展,在那里隐含地告诉你的时区是什么时间:
$dt = new DateTime('2014-06-25T19:30', new DateTimezone('Europe/London'));
echo $dt->format('g.ia');