D d / m / y转换为另一种格式PHP

时间:2018-03-11 07:04:51

标签: php date

我有来自外部来源的日期戳,格式如下

Tue 6/02/2018

但是,当尝试将日期转换为Y-m-d for SQL格式时,日期会变得歪斜,使用下面的内容;​​

date("Y-m-d H:i:s", strtotime('Tue 6/02/2018');
//ends up being Y-d-m

我之前使用

设置了时区
date_default_timezone_set('Australia/Brisbane'); 

1 个答案:

答案 0 :(得分:1)

strtotime() cannot parse格式"Tue 6/02/2018"正确无误。您必须使用DateTime::createFromFormat()来解析格式。

$time = 'Tue 6/02/2018';
$date = DateTime::createFromFormat("D j/m/Y", $time) ;
echo $date->format("Y-m-d H:i:s") ; // 2018-02-06 07:12:19

您也可以将new DateTimeZone()用作:

$time = 'Tue 6/02/2018';
$tz = new DateTimeZone('Australia/Brisbane');
$date = DateTime::createFromFormat("D j/m/Y", $time, $tz) ;
echo $date->format("Y-m-d H:i:s") ; // 2018-02-06 17:17:48