3/16/2012

PHP - ฟังชั่นเกี่ยวกับ date เปลี่ยนวันที่ ค.ศ. เป็น พ.ศ. โดยดึงวันที่มาจาก database

ฟังชั่นนี้เอาไปปรับเปลี่ยนได้ตามการใช้งานนะครับ ซึ่งที่จำเป็นต้องใช้ฟังก์ชั่นนีเพราะ SQL โดยมาตรฐานแล้วจะเก็บวันเวลา เป็น ค.ศ. ซึ่งโดยปกติแล้ว การเก็บเวลาโดยใช้รูปแบบ DATE(), NOW(), TIME() จำพวกนี้ ซึ่งง่ายต่อการจัดเก็บ แต่ข้อมูลที่เก็บไว้มันแสดงออกมา ไม่สวย ออกมาแบบข้อมูลดิบๆ ที่เราไม่ได้ปรับแต่งมัน ทีนี้จะมาดูฟังชั่น ที่แปลงวันที่ และเวลา ให้ออกมาตามรูปแบบที่เราต้องการ

function thaiDate($datetime) {
list($date,$time) = split(' ',$datetime); // แยกวันที่ กับ เวลาออกจากกัน
list($H,$i,$s) = split(':',$time); // แยกเวลา ออกเป็น ชั่วโมง นาที วินาที
list(
$Y,$m,$d) = split('-',$date); // แยกวันเป็น ปี เดือน วัน
$Y $Y+543// เปลี่ยน ค.ศ. เป็น พ.ศ.
switch(
$m
{
case 
"01":
$m "ม.ค."; break;
case 
"02":
$m "ก.พ."; break;
case 
"03":
$m "มี.ค."; break;
case 
"04":
$m "เม.ย."; break;
case 
"05":
$m "พ.ค."; break;
case 
"06":
$m "มิ.ย."; break;
case 
"07":
$m "ก.ค."; break;
case 
"08":
$m "ส.ค."; break;
case 
"09":
$m "ก.ย."; break;
case 
"10":
$m "ต.ค."; break;
case 
"11":
$m "พ.ย."; break;
case 
"12":
$m "ธ.ค."; break;
}
return 
$d." ".$m." ".$Y;
}
// รูปแบบวันที่ ที่เราเก็บจะเ็ป็นแบบนี้ ซึ่งได้มาจาก การ INSERT NOW() เข้าไปใน database
// yyyy-mm-dd hh-ii-ss
// 2010-02-25 08:10:35
$date '2010-02-25 08:10:35';

print 
thaiDate($date);
// ผลที่ได้คือ
// 25 ก.พ. 2553


หากต้องการแก้เป็น ชื่อเืดือนเต็มๆ ก็แก้ใน case ได้เลยครับ และหาต้องการให้แสดงเวลาด้วย ให้เพิ่ม ตรง return เป็นแบบนี้ครับ


return $d.' '.$m.' '.$Y.' เวลา '.$H.' '.$.' '.$s; 

No comments:

Post a Comment