พี่ๆ ครับ ช่วยผม php เรื่องเวลา GMT +5 หน่อยครับ

เริ่มโดย untilate, 30 กันยายน 2009, 21:49:43

หัวข้อก่อนหน้า - หัวข้อถัดไป

0 สมาชิก และ 1 ผู้มาเยือน กำลังดูหัวข้อนี้

untilate

คือเว็บที่ผมไปดึงมาเวลามันจะไม่ตรงกับบ้านเราอะครับ คือมันต้อง +5

ซึ่งปัจจุบันผมก็เขียนแบบ

$time = str_replace("01:","06:",$time);
$time = str_replace("02:","07:",$time);
$time = str_replace("03:","08:",$time);
.....
$time = str_replace("10:","15:",$time);
.....
$time = str_replace("20:","01:",$time);
....

เขียนแบบนี้ 24 ครั้ง

ใครมีแนวคิดอื่นที่มันสั่นๆ รบกวนแนะนำผมหน่อยนะครับ

payu

[direct=http://www.facebook.com/iipayu]payu on facebook[/direct]

EThaiZone

<?php
date_default_timezone_set
('Asia/Bangkok');
?>


เอาไว้ก่อนฟังค์ชั่นอื่นๆ จะทำงาน
ใช้ได้กับทุกโฮส ไม่ต้องสนเรื่องความต่างเวลา

untilate

อ้างถึงจาก: payu ใน 30 กันยายน 2009, 22:57:04


$time = date('d/m/Y H:i:s', strtotime("+5 hour", strtotime($time)));




ขอบคุณมากครับ

แต่ว่า ไม่ใช่เวลา่ ที่อยู่ในรูปแบบ php อะครับ เป็นเวลาที่ ใช้ file_get_conntent มา

มันจะอยู่ในรูปแบบ hr:m อะครับ ประมาณว่า

ข้อความเมื่อ: วันนี้ เวลา 10:57

ผมก็จะแก้โดยการ +5 ให้เป็น

ข้อความเมื่อ: วันนี้ เวลา 15:57

ซึ่งตอนนี้ผมเขียนแบบนี้อยู่

$time = str_replace("01:","06:",$time);
$time = str_replace("02:","07:",$time);
$time = str_replace("03:","08:",$time);
.....
$time = str_replace("10:","15:",$time);
.....
$time = str_replace("20:","01:",$time);

แต่มันต้องเขียนตั้ง 24 ครั้งอะครับ

เลยรบกวนแนะนำแบบที่มันสั่นๆ หน่อยอะครับ

untilate

อ้างถึงจาก: EThaiZone ใน 30 กันยายน 2009, 23:02:40
<?php
date_default_timezone_set
('Asia/Bangkok');
?>


เอาไว้ก่อนฟังค์ชั่นอื่นๆ จะทำงาน
ใช้ได้กับทุกโฮส ไม่ต้องสนเรื่องความต่างเวลา


หือออ โพสต์ rep บนช้าไปนิดเดียว

NongNatty


date("H:i",strtotime("10:57 +5 hour"));

$time = "10:57";
echo date("H:i",strtotime("{$time} +5 hour"));
ที่เที่ยวไทย.com : ข้อมูลสถานที่[direct=http://www.teeteawthai.com/]ท่องเที่ยว[/direct] [direct=http://www.teeteawthai.com/พาเที่ยว]พาเที่ยว[/direct]สถานที่ท่องเที่ยวต่างๆ ในประเทศไทย

[direct=http://www.r24.org/hotelresortclub.com/]Hotel Booking Online[/direct] | [direct=http://www.r24.org/siamhotelresort.com/]Hotel Booking[/direct] |
[direct=http://www.teeteawthai.com/ido24/]ที่พัก[/direct]

EThaiZone

<?php

$text 
'ข้อความเมื่อ: วันนี้ เวลา 10:57';

$t_list = array();
for(
$i=0$i<=23$i++) {
$t_list[$i.':'] = ($i+5).':';
}

$replace strtr($text$t_list);

echo 
$replace;

?>

ohmohm

อ้างถึงจาก: EThaiZone ใน 30 กันยายน 2009, 23:02:40
<?php
date_default_timezone_set
('Asia/Bangkok');
?>


เอาไว้ก่อนฟังค์ชั่นอื่นๆ จะทำงาน
ใช้ได้กับทุกโฮส ไม่ต้องสนเรื่องความต่างเวลา

แล้วมันชดเชยเวลาจาก daylight saving ด้วยไหมครับ

EThaiZone

อ้างถึงจาก: ohmohm ใน 30 กันยายน 2009, 23:33:01
อ้างถึงจาก: EThaiZone ใน 30 กันยายน 2009, 23:02:40
<?php
date_default_timezone_set
('Asia/Bangkok');
?>


เอาไว้ก่อนฟังค์ชั่นอื่นๆ จะทำงาน
ใช้ได้กับทุกโฮส ไม่ต้องสนเรื่องความต่างเวลา

แล้วมันชดเชยเวลาจาก daylight saving ด้วยไหมครับ
ไม่เคยสังเกต แต่ตามหลักมันได้นะครับ

untilate

อ้างถึงจาก: EThaiZone ใน 30 กันยายน 2009, 23:28:11
<?php

$text 
'ข้อความเมื่อ: วันนี้ เวลา 10:57';

$t_list = array();
for(
$i=0$i<=23$i++) {
$t_list[$i.':'] = ($i+5).':';
}

$replace strtr($text$t_list);

echo 
$replace;

?>


ขอบคุณมากครับได้แล้ว

แต่ถ้าเกิดเป็น 21:30 มันเป็น 26.30 นาฬิกา อะครับ แก้ไงดี

EThaiZone

<?php

$text 
'ข้อความเมื่อ: วันนี้ เวลา 18:57';

$t_list = array();
for(
$i=0$i<=23$i++) {
$t_list[$i.':'] = ($i<19 $i+: ($i+4)%23).':';
}
$replace strtr($text$t_list);

echo 
$replace;

?>


แต่ถ้าไม่อยากให้กินระบบตอนคำนวณเวลา ก็ใช้

<?php

$text 
'ข้อความเมื่อ: วันนี้ เวลา 18:57';

$t_list = array(
'0:' => '5:',
'1:' => '6:',
'2:' => '7:',
'3:' => '8:',
'4:' => '9:',
'5:' => '10:',
'6:' => '11:',
'7:' => '12:',
'8:' => '13:',
'9:' => '14:',
'10:' => '15:',
'11:' => '16:',
'12:' => '17:',
'13:' => '18:',
'14:' => '19:',
'15:' => '20:',
'16:' => '21:',
'17:' => '22:',
'18:' => '23:',
'19:' => '0:',
'20:' => '1:',
'21:' => '2:',
'22:' => '3:',
'23:' => '4:'
);
$replace strtr($text$t_list);

echo 
$replace;

?>

untilate

อ้างถึงจาก: EThaiZone ใน 30 กันยายน 2009, 23:55:23
<?php

$text 
'ข้อความเมื่อ: วันนี้ เวลา 18:57';

$t_list = array();
for(
$i=0$i<=23$i++) {
$t_list[$i.':'] = ($i<19 $i+: ($i+4)%23).':';
}
$replace strtr($text$t_list);

echo 
$replace;

?>


แต่ถ้าไม่อยากให้กินระบบตอนคำนวณเวลา ก็ใช้

<?php

$text 
'ข้อความเมื่อ: วันนี้ เวลา 18:57';

$t_list = array(
'0:' => '5:',
'1:' => '6:',
'2:' => '7:',
'3:' => '8:',
'4:' => '9:',
'5:' => '10:',
'6:' => '11:',
'7:' => '12:',
'8:' => '13:',
'9:' => '14:',
'10:' => '15:',
'11:' => '16:',
'12:' => '17:',
'13:' => '18:',
'14:' => '19:',
'15:' => '20:',
'16:' => '21:',
'17:' => '22:',
'18:' => '23:',
'19:' => '0:',
'20:' => '1:',
'21:' => '2:',
'22:' => '3:',
'23:' => '4:'
);
$replace strtr($text$t_list);

echo 
$replace;

?>


+1 ครับ ขอบคุณมากครับ

ขอบคุณพี่ๆ ทุกคน