Friday, August 10, 2012

PHP : ฟังก์ชั่น date() กับวันที่แบบไทยๆ

        สำหรับบทความนี้ก็ต่อยอดมาจากบทความที่แล้วในเรื่อง


นะครับติดตามอ่านการใช้งานเบื้องต้นก่อนได้เลย ส่วนวันนี้เรามาใช้ฟังก์ชั่น date() ที่ใช้สำหรับแสดงค่าวันที่และเวลา มาทำวันที่แบบไทยๆกันเพราะว่าเดิมผลลัพธ์ที่ได้นั้นจะเป็นภาษาอังกฤษ เราก็เลยจับมาทำใหม่กัน ตามโค้ดนี่เลยครับ



ตัวอย่างโค้ด

<?
$original_date = date("d");
$original_wday = date("l");
$original_month = date("F");
$original_year = date("Y");

echo("$original_wday    $original_date    $original_month    $original_year");

$TH_Day = array("อาทิตย์","จันทร์","อังคาร","พุธ","พฤหัสบดี","ศุกร์","เสาร์");
$TH_Month = array("มกราคม","กุมภาพันธ์","มีนาคม","เมษายน","พฤษภาคม","มิถุนายน","กรกฏาคม","สิงหาคม","กันยายน","ตุลาคม","พฤศจิกายน","ธันวาคม");

$nDay = date("w");
$nMonth = date("n")-1;
$date = date("j");
$year = date("Y")+543;

echo("วันนี้เป็นวัน  $TH_Day[$nDay]  ที่  $date  เดือน  $TH_Month[$nMonth]  ปี พ.ศ.  $year");
?>


ผลลัพธ์


Friday 10 August 2012

วันนี้เป็นวัน ศุกร์ ที่ 10 เดือน สิงหาคม ปี พ.ศ. 2555



อธิบาย

       เนื่องจากการใช้ฟังก์ชั่น date() นั้นผลลัพธ์ที่ได้จะออกมาในรูปของภาษาอังกฤษ จากตัวอย่างโค้ด



$original_date = date("d");
$original_wday = date("l");
$original_month = date("F");
$original_year = date("Y");

echo("$original_wday    $original_date    $original_month    $original_year");



จะเห็นได้ว่าผลลัพธ์ที่ออกมาคือ

Friday 10 August 2012

     ซึ่งในส่วนนี้เราต้องทำการปรับปรุงโค้ดโปรแกรมบางอย่างเพื่อให้สามารถแสดงผลเป็นภาษาไทยได้ เนื่องจากในตัวฟังก์ชั่นไม่มีการแสดงผลให้เป็นภาษาไทยได้ดังนั้นเราจึงต้องกำหนดภาษาไทยไปก่อนเพื่อเรียกใช้งานภายหลังโดยจะจัดเก็บชื่อวันของสัปดาห์และชื่อเดือนที่เป็นภาษาไทยเก็บไว้ในรูปแบบของอาร์เรย์ดังนี้



$TH_Day = array("อาทิตย์","จันทร์","อังคาร","พุธ","พฤหัสบดี","ศุกร์","เสาร์");
$TH_Month = array("มกราคม","กุมภาพันธ์","มีนาคม","เมษายน","พฤษภาคม","มิถุนายน","กรกฏาคม","สิงหาคม","กันยายน","ตุลาคม","พฤศจิกายน","ธันวาคม");



     เราได้จัดเก็บชื่อวันของสัปดาห์ในอาร์เรย์ชื่อ $TH_Day และเก็บชื่อเดือนในอาร์เรย์ชื่อ $TH_Month โดยการเรียกใช้งานสามารถเข้าถึงข้อมูลของอาร์เรย์นั้นๆได้โดยการระบุตำแหน่งของอาร์เรย์ที่ต้องการทราบค่าเข้าไป ซึ่งเริ่มนับตำแหน่งจากตำแหน่งที่ 0
     ตัวอย่างการเข้าถึงข้อมูลในอาร์เรย์
ถ้าเราต้องการข้อมูลของวันอาทิตย์ในอาร์เรย์ $TH_Day เราสามารถระบุตำแหน่งได้ดังนี้ $TH_Day[0] และเช่นเดียวกันหากต้องการเดือนมิถุนายน เราต้องใช้ดังนี้ $TH_Month[5]
     ต่อมาเราก็ทำการเก็บค่าของข้อมูลวันที่ต่างๆไว้ในตัวแปร ดังโค้ดโปรแกรมต่อไปนี้


$nDay = date("w");             //เก็บค่าของลำดับวันของสัปดาห์
$nMonth = date("n")-1;       //เก็บค่าลำดับของเดือน
$date = date("j");               //เก็บค่าวันที่
$year = date("Y")+543;      //เก็บค่า พ.ศ. (ค.ศ. + 543 = พ.ศ.)


จากนั้นก็ทำการเรียกใช้ข้อมูลดังกล่าวให้แสดงผลออกมาดังนี้


echo("วันนี้เป็นวัน  $TH_Day[$nDay]  ที่  $date  เดือน  $TH_Month[$nMonth]  ปี พ.ศ.  $year");


ซึ่งจะแสดงผลออกมาได้เป็นภาษาไทยดังผลลัพธ์

วันนี้เป็นวัน ศุกร์ ที่ 10 เดือน สิงหาคม ปี พ.ศ. 2555

     ที่แสดงผลออกมาเป็นวันศุกร์ได้เพราะการที่เรานำตัวแปร $nDay ที่เก็บค่าลำดับวันของสัปดาห์โดยเริ่มที่วันอาทิตย์ = 0 ในที่นี้คือค่า 5 มาใส่เป็นค่าตำแหน่งของอาร์เรย์ $TH_Day ซึ่ง $TH_Day[5] มีค่าเท่ากับ "ศุกร์" ส่วนการแสดงผลของเดือนก็เช่นกัน เพียงแต่ตัวแปรที่ใช้เก็บค่าลำดับเดือนนั้นจะใช้ date("n") - 1 เพราะว่า date("n") จะให้ค่าตั้งแต่ 1 - 12 การจะนำมาใช้ในอาร์เรย์ต้องเริ่มลำดับตำแหน่งที่ 0 จึงต้องทำการลบออก 1 เพื่อให้สามารถเข้าถึงลำดับในอาร์เรย์ได้อย่างถูกต้อง สำหรับปี พ.ศ. เราก็ใช้ date("Y")+543 เพราะ date("Y") จะให้ค่าเป็นปี ค.ศ. 4 หลักมาการที่จะทำให้เป็น พ.ศ. จึงต้องบวกเพิ่มอีก 543 ดังกล่าว

     สำหรับบทความนี้ก็เป็นการนำฟังก์ชั่น date() มาประยุกต์ทำวันที่ภาษาไทยดังที่ได้ทำมาแล้วนั้นเรายังสามารถที่จะนำไปประยุกต์ทำอย่างอื่นได้อีกนั่นก็คือ ปฏิทิน สำหรับบทความต่อไปเราจะมาสร้างปฏิทินในแบบฉบับของเราเอง โปรดติดตามด้วยนะครับ

No comments:

Post a Comment