You need to enable JavaScript to run this app. PHP中strtotime转换YYYYMM格式日期为Y-m格式结果异常如何解决
优惠活动
大模型
产品
解决方案
定价
更多

PHP中strtotime转换YYYYMM格式日期为Y-m格式结果异常如何解决

问题原因

strtotime() 函数无法直接解析纯6位数字的YYYYMM格式日期,传入的数值会被错误识别,最终输出非预期的格式化结果。

解决方案

有两种简单稳妥的实现方式:

  • 方案1:直接字符串截取拼接,性能最高,不需要依赖日期解析函数
@php
$s_month = '';
if ($test->month) {
    $month_val = (string)$test->month;
    // 前4位为年份,后2位为月份,直接拼接成YYYY-MM格式
    $s_month = substr($month_val, 0, 4) . '-' . substr($month_val, 4, 2);
}
@endphp
  • 方案2:补全为可识别的日期格式后再用日期函数处理,适合需要额外做日期校验的场景
    给YYYYMM后拼接01补成YYYYMM01的完整日期格式,strtotime就可以正常解析:
@php
$s_month = $test->month ? date('Y-m', strtotime($test->month . '01')) : '';
@endphp

两种方案输出的结果都符合HTML month 类型输入框的value格式要求,替换原有逻辑即可正常渲染正确的月份值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.18 17:06:03