我试图将MySQL字段的时区(日期格式如2014-07-28 16:02:44)转换为GMT + 00 / Lisbon /。 问题是当我尝试使用以下内容时:
$date = date_format($row['theDate'], 'Y-m-d H:i:sP');
echo date_timezone_set($date, timezone_open('Europe/Lisbon'));
我的输出字段是空白的,我认为可能是因为主机服务器已禁用(不知道为什么,并且花了我一整个上午的重写)mysqli和其他更新的功能(虽然PHP版本是5.3。 8如果我的记忆不是对我撒谎,它应该默认支持它们,所以我不得不回到mysql。 无论如何,我无法转换时区,代码似乎没有错误,应该有效......或者不应该这样做?
答案 0 :(得分:0)
你应该这样做:
$date = date_create($row['theDate']);
date_timezone_set($date, timezone_open('Europe/Lisbon'));
echo date_format($date, 'Y-m-d H:i:sP') . "\n";
在您的代码中:
$date = date_format($row['theDate'], 'Y-m-d H:i:sP');
echo date_timezone_set($date, timezone_open('Europe/Lisbon'));
date_format()
的第一个参数应为DateTime Object
。我怀疑$row['theDate']
被视为一个字符串。
此外,由于它显示的是空白屏幕,您应该启用错误报告,以便您可以实际查看最新情况。