使用Laravel Excel导入数据时,日期列总是无法通过验证,打印出数据后发现日期字符串都变换成五位数字了。

excel中的日期列
识别出来的日期变成五位数字

解决方法有两种:

一、将excel中的日期列改成字符串类型即可,比如在前面加上'符号。

二、excel默认是从1900-01-01作为开始计算日期,而php默认是从1970-01-01 08:00:00 作为开始计算日期。两者之间相差70年, 共计25569(365*70 + 18(中间的润年天数) + 1)天, 所以用excel的数字减去25569得到天数再转换成php日期即可:

$date = date('Y-m-d', ($date - 25569) * 24 * 3600);