在数据库中找不到DateTime时区

时间:2016-01-18 18:10:00

标签: php datetime

有没有其他人有这个奇怪的问题? 错误讯息:

  

致命错误:未捕获的异常'异常'与消息   ' DateTime :: __ construct():无法解析时间字符串(01/18/2016   美国/纽约上午00:00)位置17(A):时区不能   可以在数据库中找到'

     

异常:DateTime :: __ construct():无法解析时间字符串   (01/18/2016 00:00 AM America / New_York)位置17(A):The   在数据库中找不到时区

原始PHP代码:

$datetime = new DateTime(trim(html_entity_decode($this->input->post('publish_date').' '.$_POST['schedule_time'].' '.$_POST['schedule_meridian'] . ' ' .$_POST['schedule_timezone'])));
$date = $datetime->format('D, d M Y H:i:s O');

1 个答案:

答案 0 :(得分:9)

我担心你已经创建了这样的DateTime对象:

$_SERVER['HTTP_X_FORWARDED_FOR'];

这不是supported /有效的日期时间格式!

如果你想用其他格式创建一个DateTime对象,你必须改为调用DateTime::createFromFormat(),看看:

$date = new DateTime('01/18/2016 00:00 AM America/New_York');

PHP doc说明:

  

DateTime :: createFromFormat / date_create_from_format - 返回new   根据指定格式

格式化的 DateTime 对象