มีฟังก์ชันการจัดรูปแบบเวลาสองแบบใน PHP: date() และ gmdate() คำอธิบายในเอกสารอย่างเป็นทางการคือ:
date -- จัดรูปแบบเวลาท้องถิ่น/วันที่
gmdate -- จัดรูปแบบวันที่/เวลา GMT/UTC ซึ่งส่งคืนเป็น Greenwich เวลามาตรฐาน (GMT)
ตัวอย่างเช่น เขตเวลาที่เราอยู่ตอนนี้คือ +8 ดังนั้นเวลาที่เซิร์ฟเวอร์ที่เรียกใช้สคริปต์ต่อไปนี้ส่งคืนควรเป็นดังนี้:
เวลาปัจจุบันถือเป็น 2007-03-14 12:15:27
echo date( 'Ymd H:i:s ', time()); ผลลัพธ์คือ: 14-03-2550 12:15:27
echo gmdate('Ymd H:i:s', time()); ผลลัพธ์คือ: 2007 -03-14 04:15:27
แต่นี่เป็นเพียงผลลัพธ์ของการรัน PHP บน Linux+Apache หากทำงานบน Windows ทั้งสองฟังก์ชันจะกลับมา: 2007-03-14 04:15:27
ดังนั้นเราจึงควรให้วิธีการเขียนที่เข้ากันได้ ใช้ gmdate อย่างสม่ำเสมอ และตั้งค่าเขตเวลาปัจจุบันด้วยตนเอง วิธีการเขียนได้รับการปรับปรุงดังนี้:
echo gmdate('Ymd H:i:s', time() + 3600 * 8
ด้วยวิธีนี้
ไม่ว่าสถานการณ์จะเป็นอย่างไรบน Linux + ผลลัพธ์ที่ถูกต้องจะได้รับทั้งบน Apache และ Windows แน่นอนว่ายังมีข้อดีอีกอย่างในการเขียนด้วยวิธีนี้ จำเป็นต้องตั้งค่าเขตเวลาและโปรแกรมจะคำนวณเวลาโดยอัตโนมัติตามเขตเวลาที่ผู้ใช้กำหนด เวลาเผยแพร่ข้อมูลในฐานข้อมูลจะจัดเก็บเฉพาะเวลาที่สร้างขึ้นตามเวลาปัจจุบัน () จากนั้นจึงแสดงเวลาเผยแพร่ เขตเวลาของจีน +8 คือ: 2007-03-14 12:15:27 จากนั้นผู้ใช้ในยุโรป เขตเวลา +2 ดู เวลาที่เผยแพร่ของข้อมูลนี้คือ: 2007-03-14 06:15:27 ดังนั้นเวลาของ ข้อมูลทั้งหมดจะสอดคล้องกันอย่างถูกต้อง