使用 9 月份(例如 Sep)调用
FrozenDate::parseDate
,日期没有被解析是否有原因?
代码:
$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
编辑#1
尝试使用
getLastErrors()
输出任何错误。那里也什么都没有。
debug(FrozenDate::getLastErrors());
APP/Controller\AdministratorsController.php (line 205)
[
'warning_count' => (int) 0,
'warnings' => [ ],
'error_count' => (int) 0,
'errors' => [ ],
]
编辑#2
似乎使用“Sept”有效。请注意,我是从 Excel 导入的,给出的格式是“Sep”而不是“Sept”。并且,出于某种原因,日期“01-Sept-23”在 Excel 中转换为“01-Sept-2023”。
$months = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sept','Oct','Nov','Dec'];
foreach($months as $m)
{
$d = "01-".$m."-23";
debug($d);
$fd = FrozenDate::parseDate($d, "dd-MMM-yy");
debug($fd);
}
CLDR/ICU 问题,在较新的版本中(不确定最新版本,现在无法测试),对于某些语言环境,要么引入
Sept
,要么删除 Sep
,反之亦然,或者某种组合或任何。从任何评论中我都不清楚,我真的不想浪费时间来调查它。
tl;博士,经典的 CLDR/ICU L。最好习惯它,这样的事情经常发生。