Posts Tagged ‘ date_default_timezone_set

PHP 5 กับปัญหาการแสดงเวลา 26 September 2008 at 12:46 am by tumaji

����������� ผมเขียน 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