PHP - 将字符串转换为日期
问题描述:
我收到一个字符串,如Wed Sep 28 2016 01:00:00 GMT + 0500(PKT)我需要将其转换为2016-09-28 01:00: 00 我已经试过这PHP - 将字符串转换为日期
$startTime = strtotime($updatedData['start']);
echo $time = date("Y-m-d H:i:s",$startTime);
但它返回我2016年9月27日20:00:00
答
你可以改变它使用DateTime
:
$startTime = new DateTime('Wed Sep 28 2016 01:00:00 GMT+0500 (PKT)');
echo $startTime->format('Y-m-d H:i:s');
日期时间让你给他的时区。
活生生的例子:https://3v4l.org/UTltO
+0
正是我需要 – baig772
答
试试这个:
$startTime = strtotime($updatedData['start']);
$time = date("Y-m-d H:i:s",$startTime);
echo date("Y-M-d H:i:s", strtotime($time) + 5 * 3600);
它返回UTC时间,你确实需要增加5个小时。也是一个快速的建议。您可以使用Carbon来处理日期时间。
答
您可以在转换之前设置所需的时区。请参阅下面的代码作为参考。
date_default_timezone_set("Asia/Bangkok");
$str = 'Wed Sep 28 2016 01:00:00 GMT+0500 (PKT)';
$startTime = strtotime($str);
echo $time = date("Y-m-d H:i:s",$startTime);
答
@copynpaste的解决方案是好的,直线前进,但我仍然会用炭分享我的解决方案。
碳是与laravel一起包含的库,这里是 documentation。
$carbon = new Carbon('Wed Sep 28 2016 01:00:00 GMT+0500 (PKT)');
$carbon->format('Y-m-d H:i:s');
echo $carbon;
就会出来的结果一样的DateTime
2016-09-28 01:00:00
是这么好,什么样的碳,你可以再补充一天,分,秒等的只是一个很小的代码,这里有一个例子:
$carbon->addDays(1);
echo $carbon;
//result
2016-09-29 01:00:00
这是因为时区,时间是+5,但结果是+0。 – danopz
检查您的时区 – follio
您的出门日期是格林尼治标准时间。所以请设置time_zone并运行脚本 –