我正在尝试将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。无论如何,我不能转换时区,代码似乎没有错误,应该工作…或者不应该这样吗?
你应该这样做:
$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']
被认为只是一个字符串。
也因为它显示一个空白的屏幕,你应该打开错误报告,这样你就可以实际看到发生了什么