����������� ผมเขียน PHP มาหลายปีพึ่งมามีปัญหากับ function date ที่แสดงเวลาไม่ตรงเพราะพึ่งจะหันมาเขียนบน PHP5 (ลง Appserv ตัวใหม่ ) หลังจากที่กำลังเขียนโปรแกรมเกี่ยวกับเวลาสังเกตว่าเวลามันเร็วไป 1 ชม.
����������� เอาหล่ะสิเขียน PHP มาตั้งนานพึ่งจะเจอปัญหาก็เพราะว่าใน PHP 5 มีการ config เกี่ยวกับ timezone เอาไว้ ลองดูที่ php.ini จะพบ
�
[Date]; Defines the default timezone used by the date functions
;date.timezone =
�ตามตัวอย่างถ้าไม่ได้แก้อะไรเวลาจะบวกไปอีก 1 ชม. แล้วถ้าต้องการแก้ให้ถูกต้องหล่ะไม่ยากครับ
[Date]; Defines the default timezone used by the date functions
date.timezone = "Asia/Bangkok"
�แก้ตามนี้แล้ว restart webserver ใหม่ก็ใช้งานได้แล้ว ทดสอบตาม code นี้
< ?
echo date('l jS \of F Y h:i:s A');
?>
�ผลที่ได้ประมาณนี้
Friday 26th of September 2008 12:32:25 AM
�ส่วนสำหรับใครที่ไม่สามารถแก้ php.ini โดยเฉพาะที่เช่า host เค้าอยู่ก็ลองใช้�
< ?
//�set�the�default�timezone�to�use.�Available�since�PHP�5.1
date_default_timezone_set('Asia/Bangkok');
echo date('l jS \of F Y h:i:s A');
?>
เท่านี้ก็จะสามารถใช้ Function ที่เกี่ยวกับเวลาได้อย่างไม่มีปัญหาแล้วครับ
ปล. date_default_timezone_set มีใน PHP 5.1 [1] ขึ้นไปครับ
�อ้างอิง
[1] http://th2.php.net/manual/en/function.date-default-timezone-set.php
