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
相关产品推荐
相关产品推荐

