PHP 不支持AEST
时区,这就是为什么strtotime()
返回false
. 查看支持的 TZ 列表。
您仍然可以将输入转换为所需的输出:
$input = '12-Oct-13 09:15 PM AEST';
$dt = DateTime::createFromFormat('d-M-y H:i A *', $input);
echo $dt->format('d-m-Y h:i A'); # 12-10-2013 09:15 PM
或者,由于AEST
时区+10:00
从 偏移UTC
,只需字符串替换它:
$input = '12-Oct-13 09:15 PM AEST';
$input = str_replace(' AEST', ' +1000', $input);
$dt = new DateTime($input);
print_r($dt);
/*
DateTime Object
(
[date] => 2013-10-12 21:15:00
[timezone_type] => 1
[timezone] => +10:00
)
*/
或者,从字符串中剪切时区部分:
$input = '12-Oct-13 09:15 PM AEST';
$input = substr($input, 0, strrpos($input, ' '));
echo date_create($input)->format('d-m-Y h:i A'); # 12-10-2013 09:15 PM
# or
echo date('d-m-Y h:i A', strtotime($input)); # 12-10-2013 09:15 PM