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

PHP中无法获取正确日期格式,输出1970-01-01如何解决?

解决日期转换显示1970-01-01的问题

你的问题出在strtotime()无法正确解析MM-DD-YYYY(如10-30-2022)这种美式日期格式,导致返回false。当date()函数接收false时,会将其当作Unix时间戳0处理,最终输出1970-01-01。

以下是两种可靠的修复方案:

方案一:使用DateTime类(推荐)

DateTime类支持指定输入格式解析,兼容性更强:

$start_date2 = $_POST['start_date']; // 输入为10-30-2022
$date = DateTime::createFromFormat('m-d-Y', $start_date2);
$new_date = $date->format('Y-m-d');
echo $new_date; // 输出2022-10-30

方案二:转换分隔符让strtotime识别

strtotime()可以正确解析MM/DD/YYYY格式,因此将原日期的-替换为/即可:

$start_date2 = $_POST['start_date'];
$formatted_date = str_replace('-', '/', $start_date2);
$new_date = date('Y-m-d', strtotime($formatted_date));
echo $new_date; // 输出2022-10-30

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 23:40:27