ตั้ง Time Zone ใน Server - วันเวลาไม่คงที่ ความดีสิคงทน

"ความดังไม่คงที่ แต่ความดีสิคงทน" เป็นคำที่เราได้ยินกันบ่อยอยู่แล้ว แต่เมื่อวานนี้ผมเจอเหตุที่ต้องบอกว่า "วันเวลาไม่คงที่ แต่ความดีสิคงทน" แทนเพราะใน Web Server ที่ผมใช้งานวันเวลามันเปลี่ยนได้เอง ช่วงที่มันเปลี่ยนแปลงอยู่ไม่ว่าผมจะถามจากฟังก์ชั่น date() ของ php หรือจะ select now(); ของ mysql ปรากฏว่าเวลาในเครื่องเลื่อนออกไป +7 ชั่วโมงตลอด ที่ทราบเพราะมีผจก.ฝ่ายแจ้งเรื่องเข้ามา แล้วพอผมจะลงมือตรวจแก้จริงๆจังๆมันก็หายได้เอง และพอเบาใจว่าคงจบแล้ว อีกชั่วโมงถัดมาก็เจออีก และเป็นอยู่ร่วมชั่วโมง อาการแบบนี้ทำให้ผมงานงอก ต้องนั่งลงและแก้ปัญหาเรื่องข้อมูลไม่สัมพันธ์ในระบบเป็นการด่วนก่อนข้อมูลจะถูกนำไปอ้างอิงใช้ต่อในโมดูลอื่นๆ

หลังจากลองสอบถามไปทาง hosting ได้ความว่า คงเกิดจากการเชื่อมต่อกับ time server ไม่เสถียรแล้วเลยได้รับเวลากลับมาแบบนั้น อืม...ก็ยังงงๆอยู่นิดๆ แต่ก็ได้ไปลองคิดว่า +7 นี่มัน Time Zone บ้านเรานี่นาหรือว่าเราจะต้องบอกมันว่าเราอยู่ไหน เมื่อเวลาระบบ Sync วันเวลามาจะได้ปรับให้ถูกต้องเหมาะสม แต่ก็ไม่รู้ว่าจะเกี่ยวมั๊ย (ผมคิดว่าที่ hosting ต้องเกิดเรื่องอะไรสักอย่างแต่ยังไม่อยากให้คำตอบ) เพราะผมใช้มาตลอด 2 ปีไม่เคยเกิดปัญหานี้

ก็ได้แต่บ่นและหาข้อมูลเตรียมไว้ว่า จะบอก php อย่างไรให้รู้ว่าเราอยู่ Time Zone ไหนเพื่อระบบจะได้ปรับเวลาให้เราได้ตรงตามที่เราต้องการ ซึ่งมี 2 วิธีครับ

1.อันนี้ต้องประกาศไว้ใน php.ini
date.timezone = "Asia/Bangkok"

2.กรณีไม่สามารถเข้าถึง php.ini ก็สามารถบอกไว้ส่วนหัวของ php ที่เราเรียกใช้เป็นครั้งๆไปได้ โดยมักจะวางไว้ในคำสั่งที่ connect database ครับ ดังนี้
<?php
date_default_timezone_set("Asia/Bangkok");
?>

สำหรับหัวข้อนี้ก็จบไว้งงแบบนี้ก่อน เพราะตอนนี้ยังไม่มีข้อสรุปใดๆ แค่เล่าสู่กันฟังและคาดเดาเอาเองเท่านั้นครับ

แสดงความคิดเห็น

0 ความคิดเห็น