我有一些日期存储在 mysql 数据库中的 gmt 中。
假设客户时区偏移量为 -540;我将如何更正datetime
来自数据库的信息以反映这一点?是否有一个方便的功能可以输入日期,或者我需要相应地添加或减去。
问问题
13212 次
2 回答
4
也许这个片段会帮助你:
$format = 'Y-m-d';
$obj = new DateTime();
$date = date($format, strtotime($obj->format('Y-m-d H:i:s')) - $obj->format('Z'));
于 2012-03-06T08:50:49.173 回答
4
由于您拥有 GMT 格式的数据项,因此您必须将它们转换为时间戳,使用strtotime
此处的更多信息:http: //php.net/manual/en/function.strtotime.php
一旦有了时间戳,您可以从中减去偏移量(540 乘以 60 秒),然后将结果转换为新的日期字符串,使用date
此处获取更多信息:http: //php.net/manual/en/function.date.php
这是可以做到这一点的代码的一个版本:
$dbValue = $row['date'];
$timestamp = strtotime($dbValue) - (540*60);
$result = date("Y-m-d H:i:s", $timestamp);
于 2012-03-06T08:55:51.923 回答