เรื่องเวลาในเซิร์ฟเวอร์ไม่ตรงคือ ตัวอย่าง
<?
echo "now time is ".date(‘Y-m-d H:i:s’,time());
//out put:now time is 2007-01-18 08:25:42
//ทั้งที่เวลาจริงๆ มันต้องเป็น 2007-01-18 21:25:42
?>
แต่ถ้าผิดกันเป็นชั่วโมงเต็มๆถือว่าไม่มีปัญหาครับ เป็นเรื่องของ timezone
อย่าง server อยู่ในไทยก็อาจจจะตั้งกันได้ทั้ง UTC (GMT+0) หรือ ICT (GMT+7)
ถ้าอยู่ประเทศอื่นก็จะ GMT ± ต่างๆกันไป ถือว่าไม่แปลก
server จะอยู่ประเทศใหนไม่สำคัญ ขอเพียงให้ทราบว่าเขาใช้ time zone ± เท่าไหร่เป็นพอ
เป็นหน้าที่ของคุณที่ต้องหาความรู้เรื่อง GMT Time zone มาใช้กับ script ของคุณเอง
ถ้าทางโฮสแก้ time zone ย่อมกระทบกับผู้ใช้คนอื่นที่ทำการตั้งค่า time zone ไว้แล้วแน่นอน
อย่างที่ยกตัวอย่างมาก็เป็น GMT -6 ก็เอาค่า GMT-6 ไปใส่ใน script
แต่ทั้งนี้ต้องเช็คดูด้วยว่า เวลาของ server ตรงกับ GMT ที่ตั้งไว้หรือไม่
เช่น UTC = 0.00
ถ้าตั้งให้ server ใช้ GMT+7 เวลาใน cmos ก็ต้องเป็น 7.00
อย่างกรณีที่ยกมาค่า GMT ที่ server ก็ควรต้องตั้งไว้เป็น GMT-6 แต่ถ้าดันเป็น UTC หรือ GMT+7 ก็เปลี่ยนโฮสเถอะครับ
ลองตรวจสอบด้วย script นี้ดูครับ
<?php
echo "
Server Cmos Time: ".date ("M d Y H:i:s", time());
echo "
UTC Time (GMT+0): ".gmdate ("M d Y H:i:s", time());
echo "
Bangkok Time (GMT+7): ".gmdate ("M d Y H:i:s", time()+25200); // 60sec*60min*7hr=25200
?>
กรณีของดิฉัน เราไม่สามารถแก้ไข time zone ได้ค่ะ เนื่องจากลูกค้ามีหลายประเทศ (ขืนแก้ให้ตรงไทย แล้วประเทศอื่นจะเอาด้วย มิมั่วไปหมดหรือคะ) ดังนั้น time zone จึงเป็นเวลา local time server ที่วางในเมืองนั้น (ในอเมริกา) ต้องยอมรับค่ะ