เรื่องการแสดงเวลาที่หน้า webpage

สำหรับผู้ที่ เริ่มต้น Programming - PHP มีอะไร แนะนำ หรือข้อสงสัยต้องบอร์ด นี้ น่ะค่ะ คนที่มีความรู้ แบ่งปันคนอื่นบ้างนะ

Moderator: phpbb, mindphp, ผู้ดูแลกระดาน

ตอบกลับโพส
jini
phpBBThailand Newbie
phpBBThailand Newbie
โพสต์: 8
ลงทะเบียนเมื่อ: 01 ม.ค. 1970, 07:00

เรื่องการแสดงเวลาที่หน้า webpage

โพสต์ โดย jini »

ผมใช้ฟังก์ชั่น date("H:i:s");
เพื่อแสดงเวลาในหน้า page และจัดเก็บลงฐานข้อมูล แต่ผลที่ได้เวลามันไม่ตรงกับเครื่องอ่ะครับ มันมากกว่าเครื่อง(Web Server) อยู่ 1 ชั่วโมง
เกิดจากอะไรพอทราบไหมครับ
mindphp
phpBBThailand VIP Members
phpBBThailand VIP Members
โพสต์: 2269
ลงทะเบียนเมื่อ: 01 ม.ค. 1970, 07:00
ติดต่อ:

โพสต์ โดย mindphp »

ปกติ ค่าเวลา ที่ function date() เอามาใช้ จะเอามาจาก เวลา ของ php ที่ server นะครับ ไม่เข้าใจ ว่า มากกว่า น้อยกว่า เวลาที่ server ยังไง
สร้างไฟล์ pdf online
ท่องเที่ยว http://www.thailandhotelforums.com/" onclick="window.open(this.href);return false;
สอน php http://www.mindphp.com/" onclick="window.open(this.href);return false;
jini
phpBBThailand Newbie
phpBBThailand Newbie
โพสต์: 8
ลงทะเบียนเมื่อ: 01 ม.ค. 1970, 07:00

โพสต์ โดย jini »

เจอคำตอบแล้วครับ มันมีปัญหาเรื่อง Time zone
มีวิธีแก้ ดังนี้
1. ถ้าต้องการแก้ใน code
date_default_timezone_set("Asia/Bangkok");

2. ถ้าต้องการแก้ค่า defalut ใน php.ini
[Date]
; Defines the default timezone used by the date functions
date.timezone = Asia/Bangkok
danya
phpBBThailand Newbie
phpBBThailand Newbie
โพสต์: 2
ลงทะเบียนเมื่อ: 23 ส.ค. 2008, 04:29

Re: เรื่องการแสดงเวลาที่หน้า webpage

โพสต์ โดย danya »

ผมทำอย่างนี้

จัดเก็บเป็น

$time = time()


แล้วเอาตัวแปร $time ไปเก็บไว้ใน database โดยฟิลด์ที่เก็บ เป็นแบบนี้

time_register varchar (15) NOT NULL,

เมื่อเอามาแสดงผล ให้ทำการ ดึงออกมา

จะใช้ดึงแบบไหน ก็ได้ ผมสะดวกการใช้ดึงแบบ Object

คือ mysql_fetch_object

แล้วทำแบบนี้

$time = date('H:i:s', $row->time_register-3600);

แล้วลองเอา echo $time;

ดูครับ

1 ชั่วโมงเท่ากับ 3600

ในที่นี่ เวลาเร็วไป 1 ชั่วโมง

เราต้องลบด้วย 3600

จะตั้งค่า 3600 เป็นตัวแปรในไฟล์ config ก็ดีนะ เป็นตัวแปร global เลย

เช่น $yourtime = '-3600';

เป็นต้น
ตอบกลับโพส

ย้อนกลับไปยัง

ผู้ใช้งานขณะนี้

กำลังดูบอร์ดนี้: 25 และ บุคคลทั่วไป 0 ท่าน