我有来自外部来源的日期戳,格式如下
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');
答案 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