ง่าย ๆ การทำวันที่แบบ List ให้เลือก วัน เดืือน ปี Select Option List Date

ง่าย ๆ การทำวันที่แบบ List ให้เลือก วัน เดืือน ปี Select Option List Date

PHP CODE FATHER โปรแกรมช่วยสร้างโค้ด โปรเจ็ค PHP+MySQL+Boostrap ใช้งานง่าย ๆ


เรื่องของวันที่ มักจะเป็นปัญหาที่จะกวนใจอยู่เสมอ ๆ โดยเฉพาะมือใหม่
การเขียนโปรแกรม หรือ การพัฒนาเว็บไซต์ด้วย PHP ร่วมกับฐานข้อมูล Mysql นั้น
รูปแบบวันที่จะเป็นแบบ ค.ศ. (คริสตศักราช) คือ ปี-เดือน-วัน เช่น 2011-11-10 เป็นต้น
การเก็บข้อมูลก็ต้องทำให้ถูกต้องตามรูปแบบของเขาด้วยนะครับ

ซึ่งมักจะมีปัญหาเกี่ยวกับ การแสดงผล เช่น เก็บเป็น ค.ศ. แต่เวลาแสดงผลต้องการแสดงผลเป็น พ.ศ. (รูปแบบวันที่ของไทยเรา)

แต่วันนี้จะมาแนะนำเทคนิคการทำวันที่แบบ List ให้ผู้ใช้เลือก โดยใช่ Select Control เริ่มเลยละกัน

ทำ List วัน โดยใช้ for loop สร้าง เริ่มจาก 1 ถึง 31 

<select name='sD1' id='sD1'>
<?
for($i=1;$i<=31;$i++){
$i2=sprintf("%02d",$i); // ฟอร์แมตรูปแบบให้เป็น 00
echo '<option value="'.$i2.'">'.$i2.'</option>';
 }?>
</select>

สร้าง List เดือน เิริ่มจาก 1-12

<select name='sM1' id='sM1'>
<?
for($i=1;$i<=12;$i++){
$i2=sprintf("%02d",$i);
echo '<option value="'.$i2.'">'.$i2.'</option>';
 }?>
</select>
*** ตรง $i2 (สีน้ำเงินนั้น) หากต้องการแสดงชื่อเดือนแบบไทย ก็สามารถทำได้นะครับ
แต่มันจะใช้ for loop สร้างไม่ได้ ต้องเขียนขึ้นมาเอง เช่น

<select name='sM1' id='sM1'>
<option value="01">มกราคม</option>
        <option value="02">กุมภาพันธ์</option>
        <option value="03">มีนาคม</option>
        ...................
</select>

สร้าง List ปี ตัวอย่างนี้คือ ต้องการให้เลือกย้อนหลังได้ 3 ปี

<select name='sY1' id='sY1'>
<?
$xYear=date('Y'); // เก็บค่าปีปัจจุบันไว้ในตัวแปร
echo '<option value="'.($xYear).'">'.($xYear).'</option>'; // ปีปัจจุบัน
echo '<option value="'.($xYear-1).'">'.($xYear-1).'</option>'; // ย้อนหลังไป 1 ปี
echo '<option value="'.($xYear-2).'">'.($xYear-2).'</option>'; // ย้อนหลังไป 2 ปี
echo '<option value="'.($xYear-3).'">'.($xYear-3).'</option>'; // ย้อนหลังไป 3 ปี
?>
</select>

*** หากต้องการปีย้อนหลังมากกว่านี้ก็สามารถใช้ for loop ช่วยได้เช่นกันนะครับ เช่น

<select name='sY1' id='sY1'>
<?
$xYear=date('Y'); // เก็บค่าปีปัจจุบันไว้ในตัวแปร
        echo '<option value="'.$xYear.'">'.$xYear.'</option>'; // ปีปัจจุบัน
for($i=1;$i<=10;$i++){
echo '<option value="'.($xYear-$i).'">'.($xYear-$i).'</option>';
  }
?>
</select>
*** ก็จะได้ List ปีแบบ ค.ศ. ย้อนหลัง 10 ปี หากต้องการมากกว่านี้ก็สามารถเปลี่ยนได้ตามใจชอบนะครับ

คำถามหรือปัญหาต่อมาก็คือ แล้วเวลาจะนำไปใช้หล่ะจะทำยังไง
ก่อน Insert หรือ Update ค่าลงในฐานข้อมูล เราก็ต้องเอาตัวแปร วัน เดือน ปี มารวมกันในรูปแบบของปี ค.ศ. ก่อนครับ เช่น

$Date_In=$sY1."-".sM1."-".$sD1;

จากนั้นก็เอาตัวแปร $Date_In; ไปใช้งานต่อแล้วแต่ว่าจะเอาไปทำอะไร

ย้อนกลับ กลับหน้าแรก