上传到MySQL时,Excel的date发生了变化

我试图上传一个包含date和其他文本的列的Excel电子表格。

date格式为1/24/2012,但是当我加载到MySQL时,它将其更改为一些十进制格式,例如40932?

我怎么上传它,没有改变? o我能做什么,我真的被困在这一个!

非常感激任何的帮助。

Excel将date值保存为自基准date以来的“实际”天数,可以是1900年1月(Windows版本的Excel的默认值)或1904年1月1日(Mac版Excel的默认值):时间是小数部分,所以在任何给定date的中午,比午夜大0.5。 为了增加痛苦,1900年2月29日是Windows 1900日历的有效date。

假设Windows 1900日历:

 function ExcelToPHP($dateValue = 0) { $myExcelBaseDate = 25569; // Adjust for the spurious 29-Feb-1900 (Day 60) if ($dateValue < 60) { --$myExcelBaseDate; } // Perform conversion if ($dateValue >= 1) { $utcDays = $dateValue - $myExcelBaseDate; $returnValue = round($utcDays * 86400); if (($returnValue <= PHP_INT_MAX) && ($returnValue >= -PHP_INT_MAX)) { $returnValue = (integer) $returnValue; } } else { $hours = round($dateValue * 24); $mins = round($dateValue * 1440) - round($hours * 60); $secs = round($dateValue * 86400) - round($hours * 3600) - round($mins * 60); $returnValue = (integer) gmmktime($hours, $mins, $secs); } // Return return $returnValue; } // function ExcelToPHP() 

如果Mac 1904基地,取代

 $myExcelBaseDate = 25569; // Adjust for the spurious 29-Feb-1900 (Day 60) if ($dateValue < 60) { --$myExcelBaseDate; } 

 $myExcelBaseDate = 24107; 

这将返回一个PHPdate/时间值(标准的1970年的基准date),然后你可以使用date()来设置你想要的格式。