當前位置:
首頁 > 知識 > 關於PHPExcel中日期轉換遇到的一些問題

關於PHPExcel中日期轉換遇到的一些問題

這兩天傳日期的時候遇到比較奇葩的錯誤,在excel表中的日期是同樣的數據格式,但是兩個表導入時候有一個日期是需要轉換之後導入而有一個可以直接導入。忘記截圖,需要轉換的直接輸出是40000+的數字(以今天的日期來說是這樣的),代表1900-1-1到這一天日期的天數

日期轉換代碼

$變數= gmdate("Y-m-d", PHPExcel_Shared_Date::ExcelToPHP($sheet->getCellByColumnAndRow($col,$row)->getValue())); //格式化日期

不知道有沒有小夥伴遇到同樣的錯誤哈哈,為了解決這兩個錯誤,想了一個辦法,思路是判斷獲取的是字元串還是數字,如下圖所示拿它做出比較,是字元串則不能這樣判斷一定會執行else就達到了目的,具體代碼如下:

[php] view plain copy

  1. if

    ($col==1){//將日期列單獨拿出來判斷,做格式化操作,再存到數組
  2. $date=$sheet->getCellByColumnAndRow($col,$row)->getValue();//先將這個單獨拿出來存好用來判斷
  3. if

    ($date>4000){//判斷到底拿到的是數字還是字元串,是數字就先轉換,格式化日期,這裡的是我自己存值的數組哈哈哈,寫自己的就好

  4. $ExamPaper_arr[$i][$col] = gmdate("Y-m-d", PHPExcel_Shared_Date::ExcelToPHP($sheet->getCellByColumnAndRow($col,$row)->getValue())); //格式化日期
  5. }
  6. else

    {//不是數字就可以開心的直接執行了
  7. $ExamPaper_arr[$i][$col]=$sheet->getCellByColumnAndRow($col,$row)->getValue();//將每一個單元格存為二維數組,行對應excel的行,列對應列
  8. }
  9. }
  10. else

    {//不是數字就可以開心的直接執行了
  11. $ExamPaper_arr[$i][$col]=$sheet->getCellByColumnAndRow($col,$row)->getValue();//將每一個單元格存為二維數組,行對應excel的行,列對應列
  12. }

嘻嘻,剛開始學習不會更好的辦法,暫時只能想到這個,歡迎批評指正~

發現代碼裡面數字是4000,噗!其實也沒所謂數字是多少,只要代表是數字就可以了,還有不要大於1970-01-01這天到今天的天數哈哈哈,嘮叨完畢~

關於PHPExcel中日期轉換遇到的一些問題

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 程序員小新人學習 的精彩文章:

opencv實時識別指定物體
EF調用存儲過程實現分頁

TAG:程序員小新人學習 |