關於PHPExcel中日期轉換遇到的一些問題
知識
06-22
這兩天傳日期的時候遇到比較奇葩的錯誤,在excel表中的日期是同樣的數據格式,但是兩個表導入時候有一個日期是需要轉換之後導入而有一個可以直接導入。忘記截圖,需要轉換的直接輸出是40000+的數字(以今天的日期來說是這樣的),代表1900-1-1到這一天日期的天數
日期轉換代碼
$變數= gmdate("Y-m-d", PHPExcel_Shared_Date::ExcelToPHP($sheet->getCellByColumnAndRow($col,$row)->getValue())); //格式化日期
不知道有沒有小夥伴遇到同樣的錯誤哈哈,為了解決這兩個錯誤,想了一個辦法,思路是判斷獲取的是字元串還是數字,如下圖所示拿它做出比較,是字元串則不能這樣判斷一定會執行else就達到了目的,具體代碼如下:
[php] view plain copy
if
($col==1){//將日期列單獨拿出來判斷,做格式化操作,再存到數組- $date=$sheet->getCellByColumnAndRow($col,$row)->getValue();//先將這個單獨拿出來存好用來判斷
if
($date>4000){//判斷到底拿到的是數字還是字元串,是數字就先轉換,格式化日期,這裡的是我自己存值的數組哈哈哈,寫自己的就好
- $ExamPaper_arr[$i][$col] = gmdate("Y-m-d", PHPExcel_Shared_Date::ExcelToPHP($sheet->getCellByColumnAndRow($col,$row)->getValue())); //格式化日期
- }
else
{//不是數字就可以開心的直接執行了- $ExamPaper_arr[$i][$col]=$sheet->getCellByColumnAndRow($col,$row)->getValue();//將每一個單元格存為二維數組,行對應excel的行,列對應列
- }
- }
else
{//不是數字就可以開心的直接執行了- $ExamPaper_arr[$i][$col]=$sheet->getCellByColumnAndRow($col,$row)->getValue();//將每一個單元格存為二維數組,行對應excel的行,列對應列
- }
嘻嘻,剛開始學習不會更好的辦法,暫時只能想到這個,歡迎批評指正~
發現代碼裡面數字是4000,噗!其實也沒所謂數字是多少,只要代表是數字就可以了,還有不要大於1970-01-01這天到今天的天數哈哈哈,嘮叨完畢~
TAG:程序員小新人學習 |