我需要使用PHPExcel将excel文件导入数据库,问题在于日期,日期可以是excel文件中的任何格式。
当excel文件中的日期为12/12/2012(m / d / y)格式时,它会正确保存到数据库中,但如果excel文件中的格式日期为24/11/2014(d / m / y)它上传空白 当2012年12月24日(日/月/日)时,该值为2036-03-01
$data = $objWorksheet->getCellByColumnAndRow($col, $row);
if(PHPExcel_Shared_Date::isDateTime($data)){
$cellValue = $objWorksheet->getCellByColumnAndRow($col, $row)->getValue();
$dateValue = PHPExcel_Shared_Date::ExcelToPHP($cellValue);
$dob = date('Y-m-d',$dateValue);
} else{
$datedata = "NULL";
}
希望你能帮助我guyz
答案 0 :(得分:2)
我会尝试格式化您正在使用的 SELECT 语句中的数据。让DB做时间工作。让PHP脚本真正发挥作用。
以下是MYSQL参考指南的链接,该指南介绍了在数据库端使用日期和时间的所有方法。
<强> http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html 强>
您正在寻找的是
SELECT date_format('2014-10-13 22:00:00, '%m-%d-%Y') from <table> WHERE <column> = <data>
这将输出 10-13-2014
从这里你应该能够弄清楚其余部分。
答案 1 :(得分:2)
需要提醒的是,Excel将日期和时间存储为序列日期或序列日期时间。这是自1900年1月0日以来的天数加上24小时工作日的一小部分。这个article包含了很好的解释。
您获得负-454654643
的序列日期这一事实可能意味着Excel电子表格中格式的格式类型不正确。
您需要验证两件事:
tab
键上方的键。)Format Cells > Number > Date > Type
,并确保Type
中指定的日期格式与您的意图相符。因此,如果您的日期要解释为d/m/y
,请确保Type
匹配。同样,m/d/y
。希望这有帮助。