• LINE ID: @CARRENT
  • [email protected]
VoucherCar
  • หน้าแรก
  • สินค้า
    • แยกจังหวัดรถเช่า
    • แยกตามระดับเครื่องยนต์
    • แยกตามราคารถเช่า
    • แยกตามยี่ห้อรถเช่า

    • ตะกร้าสินค้า
    • จองด่วนน้อยกว่า 7 วัน
    • รถเช่า รายสัปดาห์
  • บทความเนื้อหา
    • คำถามพบบ่อย
    • บทความรถเช่า
    • สาขารถเช่า
    • WEBBOARD
  • วิธีการสั่งซื้อ
    • วิธีการสั่งซื้อ
    • รายละเอียดการชำระเงิน
  • จองด่วน
  • ติดต่อเรา
เข้าสู่ระบบ
รถเช่าราคาประหยัดadver
รถเช่า ประเภทต่างๆ

แยกตามจังหวัด แยกตามเครื่องยนต์ แยกตามราคา แยกตามยี่ห้อ รถเช่า รายสัปดาห์

คำถามพบบ่อยเกียวกับรถเช่า ข่าวสารบทความรถเช่า สาขาบริษัทรถเช่า เว็บบอร์ด (Webboard)

วิธีสั่งซื้อ รายละเอียดการชำระเงิน
ติดต่อเรา
รถเช่า จังหวัด

---
กลับไปหน้าเว็บบอร์ด

การ Import วันที่โดย PHPExcel แล้วเป็นตัวเลข ไม่เป็นวัน

ผู้ตั้งกระทู้: a
วันที่: 01/09/2018 เวลา: 02:28:05

ใช้ PHPExcel ดึงข้อมูลออกมา แต่ไม่สามารถ insert เข้า database ได้เลย ลอง debug เอา query string ออกมาดูก็เห็นสาเหตุ เพราะวันที่โดนแปลงจาก 1982-08-05 ไปเป็นตัวเลขประมาณ 3455 ทุก row เลย พอเข้า sql server มันก็ฟ้องมาว่าไม่ใช่วันที่นะ

หาเจอในเน็ต how to get date from excel using PHPExcel library แล้วก็หลายๆที่ ก็ใช้วิธี

1
2
3
4
5
6
$cell = $objWorksheet->getCell('A2');
$value = trim($cell->getValue());
/* detect if the cell value is formated to date or not */
if (\PHPExcel_Shared_Date::isDateTime($cell)) {
    $value = date('Y-m-d', \PHPExcel_Shared_Date::ExcelToPHP($value));
}

แต่ผลที่ได้ก็เหมือนเดิม

เกือบจะยอมแพ้แล้วจน ไปเจอคนจุดประเด็นว่า isDateTime มันตรวจโดยใช้ format mm-dd-yyyy ใน PHPExcel detect if the cell value is formated to date or not ลองเทสดูก็จริง เพราะเดิมใช้เป็น format yyyy-mm-dd ลองเปลี่ยนเป็น mm-dd-yyyy ดู สามารถดึงออกมาเป็นวันที่แล้ว ไม่ใช้ int เหมือนเดิม

เพราะว่า sql server มันใช้รูปแบบ yyyy-mm-dd และไม่อยากจะเปลี่ยนไปเปลี่ยนมา เรียงตาม ปี เดือน วัน มันดูง่ายดีแล้ว วันไหนก่อนหลัง ก็ลองหาทางดู จะเปลี่ยนคอนฟิกใหม่ ให้ใช้วันที่แบบ yyyy-mm-dd โดยเพิ่ม

PHPExcel 1=Date 2=Format
1
2
$objPHPExcel->getDefaultStyle()->getNumberFormat()
    ->setFormatCode(\PHPExcel_Style_NumberFormat::FORMAT_DATE_YYYYMMDD2);

โดยมีรูปแบบอื่นๆ ให้เลือกคือ Class: PHPExcel_Style_NumberFormat

ทดลองนำเข้าข้อมูลอีกครั้ง สามารถนำเข้าข้อมูลได้โดยไม่มีปัญหาแล้ว

หล้งจากแก้ข้อมูลแล้วต้องแน่ใจว่าใส่ข้อมูลถูก format เป็น yyyy-mm-dd จริงๆ เพราะว่าตอนเทสเจอใส่ 10/09/1987 มา ค่า value ก่อนแปลงได้ -2208211200 แทนที่จะเป็น 143856000 และหลังแปลงได้ปี 2036-02-16 ไม่ใช่ปี 1987 วันที่มันจะผิดไปหมดเลยครับ อาจจะใช้

1
2
3
4
5
6
ความคิดเห็นทั้งหมด
ยังไม่มีความคิดเห็น มาร่วมแสดงความคิดเห็นเป็นคนแรกสิ!
ร่วมแสดงความคิดเห็น

Copyright © 2026 vouchercar.com

*** ไม่อนุญาตให้ลงโฆษณาขายสินค้าใดๆ ก่อนได้รับอนุญาตจากทางเว็บนะคะ ***