|
|
|
เรื่องวุ่นๆของ date() กับการเพิ่มปีพ.ศ. ก่อนอื่นต้องบอกว่า ผมต้องใช้ date(กำหนดผลลัพธ์) ครับ ใช้อย่างอื่นได้ลำบาก |
|
|
|
|
|
|
|
function dateswap( $datadate ) {
$datearray = explode("-",$datadate);
if (strlen($datadate) > 3) {
$meyear = $datearray[0] + 543;
$datadate=$datearray[2]."/".$datearray[1]."/".$meyear;
}
return $datadate;
}
$today = date("Y-m-d");
echo dateswap($today);
$tomorrow = mktime(0, 0, 0, date("m") , date("d")+1, date("Y"));
$lastmonth = mktime(0, 0, 0, date("m")-1, date("d"), date("Y"));
$nextyear = mktime(0, 0, 0, date("m"), date("d"), date("Y")+1);
|
|
|
|
|
Date :
2009-07-27 06:16:04 |
By :
deawx |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เป็นผม ก็เก็บ เป็น ค.ศ. ปรกติ เวลาใช้ ก็ bind เอา
|
|
|
|
|
Date :
2009-07-27 07:53:04 |
By :
pjgunner |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
พี่ deawx +1 ครับ
|
|
|
|
|
Date :
2009-07-27 08:30:40 |
By :
panyapol |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
แบบนี้หรือเปล่า เราเก็บเป็น ค.ศ. เช่น 2009-07-27 แต่เราต้องการแปลงเป็น พ.ศ. 27 กรกฎาคม 2552 ซึ่งในฐานข้อมูลเราก็เก็บเป็น 2009-07-27 เหมือนเดิม
เราทำวิธีนี้นะ include("package.php"); เลย ฟังก์ชั่น เราบันทึกชื่อ package.php ตัวฟังก์ชั่นข้างล่างนี้นะ ถ้าผิดขออภัยด้วย
Code (PHP)
<?php
//--------------------------------------ฟังชังแปลงวันเป็นภาษาไทยแบบเต็ม------------------------------------------------//
function Thai_date($date)
{
list($year,$month,$day) = split('-',$date);
if($day <10){
$day = substr($day,1,1);
}
$thMonth = array("มกราคม","กุมภาพันธ์","มีนาคม","เมษายน","พฤษภาคม","มิถุนายน",
"กรกฎาคม","สิงหาคม","กันยายน","ตุลาคม","พฤศจิกายน","ธันวาคม");
if($month<10){
$month = substr($month,1,1);
}
$year +=543;
return $day." ".$thMonth[$month-1]." ".$year;
}
//---------------------------------ฟังชังแปลงวันเป็นภาษาไทยแบบเต็ม-----------------------------------------------------//
?>
|
|
|
|
|
Date :
2009-07-27 09:13:32 |
By :
kai9 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ส่วนแบบอื่นยังไม่ได้เลย ว่าแต่คุณ vee ต้องการใช้งานแบบไหนจะได้ไปศึกษาแล้วมาตอบใหม่
|
|
|
|
|
Date :
2009-07-27 09:15:07 |
By :
kai9 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เจ้าของกระทู้ เงียบเลย
|
|
|
|
|
Date :
2009-07-27 09:40:10 |
By :
panyapol |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
มาแล้วๆ...
เก็บในฐานข้อมูลก็แบบเดิมนั่นแหละครับ เป็น ค.ศ.
แต่แสดงผลเป็นพ.ศ.หรือ ค.ศ. ขึ้นอยู่กับการตั้งค่าของผู้ใช้ว่าเลือกภาษาอะไร (ตรงนี้ทำได้แล้ว)
แต่ว่าการแปลงให้มันแสดงผลเป็น พ.ศ. มันเหมือนกับจะทำไม่ได้
ถ้าต้องมีเงื่อนไขที่ว่าผู้ใช้กำหนดการแสดงผล date() เองล่ะก็นะ
คือถ้าเอามาแปลง พ.ศ. แล้วผมกำหนดเองไปเลยว่า return $day." ".$thMonth[$month-1]." ".$year; เหมือนตัวอย่างของคุณ kai อย่างนั้นผมทำผ่านแล้วครับ
แต่ว่าถ้าผู้ใช้กำหนดผลลัพธ์ date() เองยังทำไม่ได้เลย
ส่วนตัวอย่างของคุณ deawx ผมลองเอาไปแปลงๆดู ยังไม่ได้ลองทั้งหมด *ตรงนี้ว่าจะไปลองแปลงไปแปลงมากับ date class ของ http://xwisdomhtml.com/dateclass.html ดูก่อน
แต่ถ้าจะเอาแนวที่คุณ deawx ให้มาเลยก็ไม่ได้อยู่ดี เพราะว่าหากผู้ใช้กำหนดผลลัพธ์ date() เป็น "l j F Y g:i a " มันกลายเป็นก็ไม่เวิร์คไปเลย
ผมลองนั่งหาจากพี่ goo เพิ่มไปเรื่อยๆ ถึงได้รู้ว่ามันจำกัดอยู่แค่ 1970-2038 เท่านั้นเองบน windows.
(ทำไมมันต้องกีดกันถึงขนาดนี้ด้วยนะ ทั้งmysql-asp ทั้ง php-windows)
|
|
|
|
|
Date :
2009-07-27 13:55:09 |
By :
mr.v |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ได้แล้วครับ อิอิ
Code (PHP)
<?php
static public function dateformat($inputdate, $opt='', $beyear='yes') {
global $yearsign;
$inputdate = strtotime($inputdate);//format date time to timestamp
if ($opt == null) { $output = date($inputdate); } else {
//$output = date($opt, $inputdate);//format from input $opt
$output = date("d m Y h:i:s A", $inputdate);// ส่งออกในแบบที่ date class รับได้
//แปลง ค.ศ. เป็น พ.ศ.
if ($yearsign == "be" && $beyear == "yes") {
$datearray = explode(" ", $output);
$customyear = $datearray[2]+543;
$output = $datearray[0]." ".$datearray[1]." ".$customyear." ".$datearray[3];
}
//จบการแปลง ค.ศ. เป็น พ.ศ.
//call date class to format date result
include_once(dirname(__FILE__)."/date/date.php");
$date = new date();
$output = $date->format($opt, $output);
//* translate output date *//
require("languages/"._SITE_LN_.".php");
foreach ($_lntxt as $key => $value) {
$output = str_replace($key, $value, $output);
}
//* end translate output date *//
}
return $output;
}
?>
ออกมาเป็น
|
|
|
|
|
Date :
2009-07-27 16:05:49 |
By :
mr.v |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 04
|