如何转换此日期:“16/11/2020 12:00:00 a. m.”使用 PHP 到“2020-11-16 00:00:00”?
How convert this date: "16/11/2020 12:00:00 a. m." to "2020-11-16 00:00:00" with PHP?
目前,我正在请求外部网络服务以获取一些重要信息。然而,这个网络服务 return 我的日期是这样的:
16/11/2020 12:00:00 a. m.
所以,我在其他实现中使用这样的代码来获取日期时间:
$date = '16/11/2020 12:00:00 a. m.';
$newDateTime = new \DateTime($date);
但是它抛出这个错误:
DateTime::__construct(): Failed to parse time string (16/11/2020
12:00:00 am) at position 0 (1): Unexpected character
起初,我以为是“a.m.”部分可能导致我做了这个改变:
$date = '16/11/2020 12:00:00 a. m.';
$date = str_replace('a. m.', 'am', $date);
$date = str_replace('p. m.', 'pm', $date);
$newDateTime = new \DateTime($date);
但错误依然存在。我最后一次尝试是这样的:
$date = '16/11/2020 12:00:00 a. m.';
$date = str_replace('a. m.', 'am', $date);
$date = str_replace('p. m.', 'pm', $date);
$date = date("Y-m-d H:s:i", strtotime($date));
$newDateTime = new \DateTime($date);
但是我得到的结果日期是:
1970-01-01 00:00:00
那么,解析这种日期的正确格式是什么?
谢谢。
您需要提供匹配的格式说明:
<?php
$date = '16/11/2020 12:05:30 a. m.';
$date = str_replace('a. m.', 'am', $date);
$date = str_replace('p. m.', 'pm', $date);
$newDateTime = \DateTime::createFromFormat('d/m/Y h:i:s A', $date);
print_r($newDateTime->format('Y-m-d h:i:s'));
输出为:
2020-11-16 12:05:30
目前,我正在请求外部网络服务以获取一些重要信息。然而,这个网络服务 return 我的日期是这样的:
16/11/2020 12:00:00 a. m.
所以,我在其他实现中使用这样的代码来获取日期时间:
$date = '16/11/2020 12:00:00 a. m.';
$newDateTime = new \DateTime($date);
但是它抛出这个错误:
DateTime::__construct(): Failed to parse time string (16/11/2020 12:00:00 am) at position 0 (1): Unexpected character
起初,我以为是“a.m.”部分可能导致我做了这个改变:
$date = '16/11/2020 12:00:00 a. m.';
$date = str_replace('a. m.', 'am', $date);
$date = str_replace('p. m.', 'pm', $date);
$newDateTime = new \DateTime($date);
但错误依然存在。我最后一次尝试是这样的:
$date = '16/11/2020 12:00:00 a. m.';
$date = str_replace('a. m.', 'am', $date);
$date = str_replace('p. m.', 'pm', $date);
$date = date("Y-m-d H:s:i", strtotime($date));
$newDateTime = new \DateTime($date);
但是我得到的结果日期是:
1970-01-01 00:00:00
那么,解析这种日期的正确格式是什么?
谢谢。
您需要提供匹配的格式说明:
<?php
$date = '16/11/2020 12:05:30 a. m.';
$date = str_replace('a. m.', 'am', $date);
$date = str_replace('p. m.', 'pm', $date);
$newDateTime = \DateTime::createFromFormat('d/m/Y h:i:s A', $date);
print_r($newDateTime->format('Y-m-d h:i:s'));
输出为:
2020-11-16 12:05:30