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

PHP自定义getDate函数输出显示Array而非正确日期值求助

问题解决:自定义getDate函数输出Array的原因及修复

问题根源

你遇到的问题是函数名冲突:PHP本身内置了getDate()函数,这个函数会返回一个包含日期各部分信息的数组,而你自定义的函数和它同名,导致调用时优先执行了内置函数,所以输出了Array。

另外你的原函数还存在一个小问题:需求是转换为MM/DD/YYYY格式,但原代码只返回了两位年份,没有处理CYYMMDD中的世纪位(开头的C)。

修复方案

1. 重命名自定义函数

把自定义函数改成和内置函数不重名的名称,比如convertCYYMMDDToMMDDYYYY。

2. 补全四位年份

根据CYYMMDD格式的规则(C为世纪码,通常0代表19xx,1代表20xx),计算完整的四位年份。

修改后的完整代码:

转换函数

// 将CYYMMDD格式转换为MM/DD/YYYY格式
function convertCYYMMDDToMMDDYYYY(string $iDATE) {
    $century = substr($iDATE, 0, 1);
    $yearPart = substr($iDATE, 1, 2);
    // 根据世纪码生成完整年份,可根据实际业务调整世纪映射规则
    $fullYear = ($century === '0' ? '19' : '20') . $yearPart;
    $month = substr($iDATE, 3, 2);
    $day = substr($iDATE, 5, 2);
    
    return "$month/$day/$fullYear";
}

调用代码

print "<td align='left' class='Col2'><font face='Calibri' size='3'>".convertCYYMMDDToMMDDYYYY($iDATE)."</td>";

验证示例

如果输入的$iDATE是1231005(即2023年10月05日),调用函数后会输出10/05/2023;如果输入是0991231(1999年12月31日),会输出12/31/1999。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 00:54:10