You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP带时区日期时间转UNIX时间戳(MySQL插入用)求助

解决PHP将带时区日期转换为MySQL可用UNIX时间戳的问题

你用strtotime()失败的核心原因是:它默认优先识别月/日/年格式,而你的日期是日/月/年结构,导致解析出错。下面是两种可靠的解决办法:

方法一:直接使用DateTime类

DateTime类能正确解析带时区的日期字符串,通过getTimestamp()即可得到UNIX时间戳:

$dateStr = '29/05/2022 22:23:04 +00:00';
$dateObj = new DateTime($dateStr);
$unixTs = $dateObj->getTimestamp();

// 输出示例:1653867784
echo $unixTs;

方法二:用date_create_from_format指定格式

如果要明确约束解析规则,避免格式歧义,可以用这个函数:

$dateStr = '29/05/2022 22:23:04 +00:00';
$dateObj = date_create_from_format('d/m/Y H:i:s P', $dateStr);
$unixTs = $dateObj->getTimestamp();

echo $unixTs;

格式符d/m/Y H:i:s P分别对应:日/月/年、时:分:秒、时区偏移(如+00:00)。

MySQL插入说明

拿到的UNIX时间戳可以直接插入到MySQL的INT类型字段;如果你的字段是DATETIME类型,也可以用MySQL内置函数转换后插入:

INSERT INTO your_table (time_col) VALUES (FROM_UNIXTIME(?))

用预处理语句绑定$unixTs参数即可。

内容的提问来源于stack exchange,提问作者Joeme

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 04:20:31