สอบถามเรื่องการใช้ date() ร่วมกับ strtotime แล้วเป็น 1970-01-01 ครับ
Code (PHP)
<?php
function DateThai($strDate)
{
$strYear = date("Y",strtotime($strDate))+543;
$strMonth= date("n",strtotime($strDate));
$strDay= date("j",strtotime($strDate));
$strHour= date("H",strtotime($strDate));
$strMinute= date("i",strtotime($strDate));
$strSeconds= date("s",strtotime($strDate));
$strMonthCut = Array("","ม.ค.","ก.พ.","มี.ค.","เม.ย.","พ.ค.","มิ.ย.","ก.ค.","ส.ค.","ก.ย.","ต.ค.","พ.ย.","ธ.ค.");
$strMonthThai=$strMonthCut[$strMonth];
return "$strDay $strMonthThai $strYear, $strHour:$strMinute";
}
$strDate = "2008-08-14 13:42:44";
echo "ThaiCreate.Com Time now : ".DateThai($strDate);
?>
PHP Thai Date/Time Function
Date :
2012-10-08 11:28:26
By :
pokultra
คือตอนนี้ผมอยากเปลี่ยนข้อมูลในฐานข้อมูลให้เป็น 2011 น่ะครับ ซึ่งจะใช้คำสั่ง while เปลี่ยนทั้งหมดน่ะครับ
Date :
2012-10-08 11:32:54
By :
jackPRW
Code (PHP)
<?
function date_cover($date)
{
$date = explode(" ",$date);
list($y,$m,$d) = explode("-",$date[0]);
$date1 = ($y-543)."-".$m."-".$d;
return $date1;
}
$date = "2554-01-31" ;
echo $date."<br>"; // แบบเดิม
echo date_cover($date); // แปลงแล้ว
?>
ทดสอบแล้วครับ
ผมทำมาเป็น function น่ะคับ
Date :
2012-10-08 11:33:46
By :
fiet
คือตอนนี้ผมมีข้อมูลอยู่เยอะมากและในฐานข้อมูลเป็นประเภท date yyyy-mm-dd
แต่เป็น 2513-01-01 ซึ่งผมจะทำให้เป็นปัจจุบันไม่ได้ครับ
Code (PHP)
<?php
// วืธัใช้ $dateData=$meResult['create_date']; echo thai_date_and_time_short(strtotime($dateData));
$thai_day_arr=array("อาทิตย์","จันทร์","อังคาร","พุธ","พฤหัสบดี","ศุกร์","เสาร์");
$thai_month_arr=array(
"0"=>"",
"1"=>"มกราคม",
"2"=>"กุมภาพันธ์",
"3"=>"มีนาคม",
"4"=>"เมษายน",
"5"=>"พฤษภาคม",
"6"=>"มิถุนายน",
"7"=>"กรกฎาคม",
"8"=>"สิงหาคม",
"9"=>"กันยายน",
"10"=>"ตุลาคม",
"11"=>"พฤศจิกายน",
"12"=>"ธันวาคม"
);
$thai_month_arr_short=array(
"0"=>"",
"1"=>"ม.ค.",
"2"=>"ก.พ.",
"3"=>"มี.ค.",
"4"=>"เม.ย.",
"5"=>"พ.ค.",
"6"=>"มิ.ย.",
"7"=>"ก.ค.",
"8"=>"ส.ค.",
"9"=>"ก.ย.",
"10"=>"ต.ค.",
"11"=>"พ.ย.",
"12"=>"ธ.ค."
);
function thai_date_and_time($time){
global $thai_day_arr,$thai_month_arr;
$thai_date_return.=date("j",$time);
$thai_date_return.=" ".$thai_month_arr[date("n",$time)];
$thai_date_return.= " ".(date("Y",$time)+543);
$thai_date_return.= " ".date("H:i:s",$time)." น.";
return $thai_date_return;
}
?>
Date :
2021-01-12 08:03:11
By :
aui
ตอบความคิดเห็นที่ : 5 เขียนโดย : aui เมื่อวันที่ 2021-01-12 08:03:11
รายละเอียดของการตอบ ::
ลองเอาไปปรับเอาดูครับ
Code (PHP)
function DateThai($strDate){
(empty($strDate))? $strDate = date('Y-m-d H:i:s') : $strDate = $strDate;
$strYear = date("Y",strtotime($strDate))+543;
$strMonth= date("n",strtotime($strDate));
$strDay= date("j",strtotime($strDate));
$strHour= date("H",strtotime($strDate));
$strMinute= date("i",strtotime($strDate));
$strSeconds= date("s",strtotime($strDate));
$strMonthCut = array("","ม.ค.","ก.พ.","มี.ค.","เม.ย.","พ.ค.","มิ.ย.","ก.ค.","ส.ค.","ก.ย.","ต.ค.","พ.ย.","ธ.ค.");
$strMonthThai=$strMonthCut[$strMonth];
return "$strDay $strMonthThai $strYear, $strHour:$strMinute";
}
Date :
2021-01-12 10:23:09
By :
arm8957
ถ้าไม่ต้องการแก้ไขในฐานข้อมูล ก็ใช้วิธีการแปลงช้อมูลก่อนนำมาแสดงผล โดยใช้คิวรี่ก็ได้ครับ เช่น
Code (SQL)
SELECT CONCAT(DATE_FORMAT(date_transfer, "%Y") - 543, DATE_FORMAT(date_transfer, "-%m-%d")) AS date_transfer FROM customer_detail
หรือ ถ้าต้องการแก้ให้ฐานข้อมูลถูกต้องไปเลย ก็ UPDATE ในตารางไปลยก็ได้ครับ เช่น
Code (SQL)
UPDATE customer_detail Set date_transfer = CONCAT((DATE_FORMAT(date_transfer, "%Y") - 543), DATE_FORMAT(date_transfer, "-%m-%d"))
ประวัติการแก้ไข 2021-01-14 16:08:23
Date :
2021-01-14 16:07:25
By :
Songkram
1 convert text thai date ให้เป็น type datetime ของ ต้นฉบับเขา
วิธีการ
a. สร้าง bakup table ไว้ก่อน กันเหนียว เพื่อทำอะไรผลาดจะได้ เรียกคืนได้
b. สร้าง field type datetime ขึ้นมาใหม่
c. update field ใหม่ จากค่า thaidate
Code (SQL)
update tablename set engdate = concat( left( thaidate, 1, 4)-543, right(thaidate, 6))
เราก็จะได้ field eng_date ไว้ใช้งาน เร็วขึ้น ไม่ต้อง convert ไปมา
ส่วนการแสดง ผล ค่อยใช้ main code convert เพื่อแสดงผลเป็นภาษาไทย
Date :
2021-01-15 18:01:31
By :
Chaidhanan
Load balance : Server 00