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

为何FrozenDate::parseDate无法解析含Sep(九月)的日期?

问题:FrozenDate::parseDate无法解析Sep缩写的九月日期

问题描述

调用FrozenDate::parseDate解析dd-MMM-yy格式的日期时,月份缩写为Sep(九月)时会返回null,无法正常解析,其他月份则无异常。

复现代码

$months = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'];

foreach($months as $m)
{
    $d = "01-".$m."-23";
    debug($d);
    $fd = FrozenDate::parseDate($d, "dd-MMM-yy");
    debug($fd);
}

输出:

APP/Controller\AdministratorsController.php (line 202)
'01-Sep-23'
APP/Controller\AdministratorsController.php (line 204)
null

排查过程

  • 调用FrozenDate::getLastErrors()未获取到任何错误信息:
    debug(FrozenDate::getLastErrors());
    
    输出:
    [
    'warning_count' => (int) 0,
    'warnings' => [ ],
    'error_count' => (int) 0,
    'errors' => [ ],
    ]
    
  • 测试发现使用月份缩写Sept时可正常解析,但用户从Excel导入的日期格式为Sep,且Excel会将01-Sept-23自动转换为01-Sep-2023。

解决方案

在调用parseDate()之前,将默认区域设置为en_US(经测试en_CA无效):

FrozenDate::setDefaultLocale("en_US");//en_CA doesn't work

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 08:19:59