我有一个这种格式的日期"2022年10月26日星期三16:11:30-1100";,需要将其转换为UTC时间,并以一种格式将其插入MySQL数据库。
日期是从一封电子邮件中提取的$headerInfo->日期&";。我看不出有什么不同的方式可以收到日期。
我尝试转换的每一种方式都是痛苦和暴力的。
有没有一种优雅或不痛苦的方法来做到这一点?
TIA。
我一直在尝试regex,但它无法将月份转换为数字,然后您需要使用UTC偏移量(时区(。
使用DateTimeImmutable::createFromFormat分析日期/时间字符串,将时区设置为UTC,然后将其格式化为MySQL的日期时间文本语法
$dt = DateTimeImmutable::createFromFormat('D, j M Y H:i:s O', $dateString);
$mysqlFormat = $dt->setTimezone(new DateTimeZone('UTC'))->format('Y-m-d H:i:sP');
演示~https://3v4l.org/G7RBG
<?php
//just use strtotime
echo date('Y-m-d H:i:s e',strtotime('Wed, 26 Oct 2022 16:11:30 -1100'));
?>