从客户发送:'2016年3月14日星期一15:00:00 GMT + 1100(AEDT)'
$btime = $jd["bookingtime"];
$btime = substr($btime, 0, strpos($btime, '('));
$jobdetail->bookingtime = date('Y-m-d h:i:s', strtotime($btime));
记录存储在MySQL数据库中:2016-03-14 15:00:00
答案 0 :(得分:1)
当您的PHP设置为UTC默认时区时,您可以使用date_default_timezone_set()
进行设置并找到您的时区。看看here for australian timezones。
如果您有权访问php.ini文件,则可以在其中设置参数date.timezone
到您需要的时区。如果未设置该设置,则默认为UTC。如果没有设置时区,在新版本的php中使用date
函数时,AFAIK应该会有一个警告回显。
如您所述,您可以将其存储在UTC中,并根据您的需要转换为localtime。如果用户来自许多不同的时区,则UTC会更容易。
在您使用date.timezone或使用函数date_default_timezone_set()
设置的时区中自动转换日期:
$d = 'Mon Mar 14 2016 15:00:00 GMT+1100';
$date = date('Y-m-d h:i:s', strtotime($d));
var_dump($date); // echoes '2016-03-14 04:00:00'
var_dump(date_default_timezone_get()); // echoes 'UTC'
date_default_timezone_set ('Europe/Zurich');
var_dump(date_default_timezone_get()); // echoes 'Europe/Zurich'
$date = date('Y-m-d h:i:s', strtotime($d)); // echoes '2016-03-14 05:00:00'
var_dump($date);