我需要能够将字符串(参见下面的示例)转换为可以添加到 MySQL 的格式。我可以将它添加为 var car,但我需要能够根据这些日期范围运行查询。
例如“格林威治标准时间 2013 年 5 月 2 日上午 12:08”
对实现这一目标的最佳方法有什么建议吗?
编辑 目前正在尝试以下操作:
$date = date_create_from_format('d M Y H:i A e', '02 May 2013 12:08 AM GMT');
echo $date;
但是当我尝试回显日期时出现服务器错误。
我还尝试了以下方法将日期和时区分开并尝试单独处理:
$myvalue = '02 May 2013 12:08 AM GMT';
$arr = explode(' ',trim($myvalue));
$timezone = new DateTimeZone($arr[5]);
$arr[count($arr)-1]='';
$time=implode(' ',$arr);
$date = date_create_from_format('d M Y h:i A', $time, $timezone);
echo $date;
但我再次遇到服务器错误。
编辑 我刚刚意识到第二块代码可能由于格林威治标准时间而出错,因为它似乎不是这个函数的可用格式。
编辑
经过进一步调查,我认为存储数据的最佳方法是将所有日期存储为DATETIMEin
具有相同时区(gmt)的 MySQL,并与它一起存储它们所在的实际时区,并在需要时在运行查询时使用时区。
$myvalue = '02 May 2013 12:08 AM GMT';
$arr = explode(' ',trim($myvalue));
$timezone = new DateTimeZone($arr[5]);
$arr[count($arr)-1]='';
$time=implode(' ',$arr);
$timestamp = strtotime($time);
$date = date("Y-m-d H:i:s", $timestamp);
echo $date;