|
|
|
อยากถามเกี่ยวกับการใช้ preg_replace แปลงค่าเป็นปีพ.ศ. |
|
|
|
|
|
|
|
ตอนนี้ผมทำฟังก์ชั่นวันที่ภาษาไทย มาถึงขั้นนี้แล้ว
Code (PHP)
<?php
/**
* @author vee
* @copyright http://www.okvee.net
*
* thaidate
* convert php timestamp to thai date
*
*/
/**
* thaidate
* @param string $format
* @param int $timestamp
* @param boolean $be
*/
function thaidate($format = '', $timestamp = '', $be = true) {
if ( $timestamp == null ) {$timestamp = time();}
// month values
$en_month_long = array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
$en_month_short = array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec");
$th_month_long = array("มกราคม", "กุมภาพันธ์", "มีนาคม", "เมษายน", "พฤษภาคม", "มิถุนายน", "กรกฎาคม", "สิงหาคม", "กันยายน", "ตุลาคม", "พฤศจิกายน", "ธันวาคม");
$th_month_short = array("ม.ค.", "ก.พ.", "มี.ค.", "เม.ย.", "พ.ค.", "มิ.ย.", "ก.ค.", "ส.ค.", "ก.ย.", "ต.ค.", "พ.ย.", "ธ.ค.");
// day values
$en_day_long = array("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday");
$en_day_short = array("Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat");
$th_day_long = array("อาทิตย์", "จันทร์", "อังคาร", "พุธ", "พฤหัสบดี", "ศุกร์", "เสาร์");
$th_day_short = array("อา.", "จ.", "อ.", "พ.", "พฤ.", "ศ.", "ส.");
// replace eng to thai from long to short
$thaidate = date($format, $timestamp);
if ( mb_strpos($format, "F") !== false ) {
$thaidate = str_replace($en_month_long, $th_month_long, $thaidate);
} else {
$thaidate = str_replace($en_month_short, $th_month_short, $thaidate);
}
$thaidate = str_replace($en_day_long, $th_day_long, $thaidate);
$thaidate = str_replace($en_day_short, $th_day_short, $thaidate);
// convert year to buddha era (rg. 2554, 2555, 2556)?
if ( $be == true ) {
if ( mb_strpos($format, "o") !== false || mb_strpos($format, "Y") !== false ) {
// ทำไงดี??
} elseif ( mb_strpos($format, "y") !== false) {
// ทำไงดี??
}
}
return $thaidate;
}// thaidate
?>
จากโค้ดข้างบน คือคนที่ใช้ date() ของ php ก็แค่เติม thai ข้างหน้าเป็น thaidate() ก็จะได้วันที่ภาษาไทย ตาม format ของ php เป๊ะเลย
แต่ว่าติดตรงพ.ศ. ที่ผมคิดว่ามันน่าจะใช้ preg_replace อะไรสักอย่างละทีนี้ แล้วผมก็ทำไม่เป็น
ช่วยหน่อยครับ ผมจะแปะเครดิตให้เวลานำไปแจก
ทดลองเรียกใช้ตามนี้
Code (PHP)
require("thaidate.php");
echo "thai date " . thaidate("j l F Y H:i:s") . "<br />\n";
มันได้ออกมาเป็น thai date 11 อังคาร ตุลาคม 2011 21:45:42 ติดตรงแค่ทำปีให้เป็นพ.ศ.เองครับ (โค้ดประมาณบรรทัด 38)
Tag : PHP
|
|
|
|
|
|
Date :
2011-10-11 21:55:46 |
By :
mr.v |
View :
1323 |
Reply :
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมก็มีนะ แต่ไม่แจก คนแจกเยอะแล้ว
|
|
|
|
|
Date :
2011-10-11 22:12:58 |
By :
ikikkok |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
งะ... อันนี้ว่าจะเอาไปใช้เองด้วยแจกด้วยอะครับ
|
|
|
|
|
Date :
2011-10-11 22:16:38 |
By :
mr.v |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 04
|