如何在PHP中转换日期格式

时间:2019-07-20 08:41:38

标签: php laravel

如何使用PHP将Fri Jul 19 2019 00:00:00 GMT 0800(新加坡标准时间)转换为mysql日期格式? 我尝试使用strtotime,但没有一个对我有用

date("Y-m-d H:i:s", strtotime("Fri Jul 19 2019 00:00:00 GMT 0800 (Singapore Standard Time)"));

1 个答案:

答案 0 :(得分:1)

日期无法解析,因为它的格式很奇怪。

如果您无法控制输入日期的格式,则可以使用正则表达式获取不同部分并进行解析:

$rawDate = "Fri Jul 19 2019 00:00:00 GMT 0800 (Singapore Standard Time)";
preg_match('/(.*?) GMT (\d+)\s\(.*?\)/', $rawDate, $matches);

$date = DateTime::createFromFormat('D M j Y H:i:s', $matches[1])
   ->setTimezone(new DateTimeZone('+' . $matches[2]));

echo $date->format('Y-m-d H:i:s'); // outputs 2019-07-19 06:00:00

示例:https://3v4l.org/fbuMk