การตรวจสอบวันหยุดจาก input เพื่อหาวันไปส่งอาหารสัตว์
ถาม-ตอบ แนะนำไอเดียว โค้ดตัวอย่าง แนวทาง วิธีแก้ปัญหา การตรวจสอบวันหยุดจาก input เพื่อหาวันไปส่งอาหารสัตว์
การตรวจสอบวันหยุดจาก input เพื่อหาวันไปส่งอาหารสัตว์
ผมได้โปรเจคเป็นการรับค่าวันที่จาก user เพื่อให้ไปส่งอาหารสัตว์ โดยเงื่อนไขที่ต้องทำคือหากค่า input วันหยุดที่ป้อนเข้าไปตรงกับวันหยุดเสาร์อาทิตย์หรือวันหยุดนักขัต(ผมเพิ่มเข้า database ของ SQL Server เพื่อดึงมาตรวจสอบ) ก็ให้ไปส่งก่อนหรือหลังจากวันที่ป้อนเข้าไป 4 วัน โดนขึ้รอยู่กับเงื่อนไขอาหารที่เหลืออยู่ ถ้าหากว่ามากกว่า 30% ให้ไปส่งหลัง 4 วันจากวันที่ input หากน้อยกว่า 30% ให้ไปส่งก่อน 4 วันจากวันที่ input เข้าไป ขอรบกวนทุกท่านด้วยครับ
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | <html> <head> <title>ตารางแสดงวันส่งอาหาร</title> </head> <body> <?php $strStartDate = "2020-01-01" ; $strEndDate = "2020-12-31" ; $intWorkDay = 0; $intHoliday = 0; $intTotalDay = (( strtotime ( $strEndDate ) - strtotime ( $strStartDate ))/ ( 60 * 60 * 24 )) + 1; while ( strtotime ( $strStartDate ) <= strtotime ( $strEndDate )) { $DayOfWeek = date ( "w" , strtotime ( $strStartDate )); if ( $DayOfWeek == 0 or $DayOfWeek ==6) // 0 = Sunday, 6 = Saturday; { $intHoliday ++; echo "$strStartDate = <font color=red>Holiday</font><br>" ; } else { $intWorkDay ++; echo "$strStartDate = <b>Work Day</b><br>" ; } //$DayOfWeek = date("l", strtotime($strStartDate)); // return Sunday, Monday,Tuesday.... $strStartDate = date ( "Y-m-d" , strtotime ( "+1 day" , strtotime ( $strStartDate ))); } echo "<hr>" ; echo "<br>Total Day = $intTotalDay" ; echo "<br>Work Day = $intWorkDay" ; echo "<br>Holiday = $intHoliday" ; ?> </body> </html> |

คำแนะนำ และการใช้งาน
สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก
- ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ
ความคิดเห็นที่
1
1 | $holidayDate = []; |
สร้างตัวแปร array เก็บ วันที่ที่เป็นเสาร์ อาทิตย์ หรือวันหยุด จากฐานข้อมูล
1 | $holidayDate [] = $strStartDate ; |
เอาวันที่ป้อน ไปหาว่า มีค่าอยู่ใน array วันหยุดหรือไม่ in_array()
1 2 3 | if (in_array( $inputDate , $holidayDate )){ } |
เงื่อนไขวันส่งตามต้องการ
1 2 3 4 5 | if ( $remain >= 30){ $sendDate = date ( "Y-m-d" , strtotime ( "+4 day" , strtotime ( $inputDate ))); } else { $sendDate = date ( "Y-m-d" , strtotime ( "-4 day" , strtotime ( $inputDate ))); } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | $strStartDate = "2020-01-01" ; $strEndDate = "2020-12-31" ; $intWorkDay = 0; $intHoliday = 0; $intTotalDay = (( strtotime ( $strEndDate ) - strtotime ( $strStartDate ))/ ( 60 * 60 * 24 )) + 1; $holidayDate = []; while ( strtotime ( $strStartDate ) <= strtotime ( $strEndDate )) { $DayOfWeek = date ( "w" , strtotime ( $strStartDate )); if ( $DayOfWeek == 0 or $DayOfWeek ==6) // 0 = Sunday, 6 = Saturday; { $holidayDate [] = $strStartDate ; $intHoliday ++; echo "$strStartDate = <font color=red>Holiday</font>rn" ; } else { $intWorkDay ++; echo "$strStartDate = <b>Work Day</b>rn" ; } //$DayOfWeek = date("l", strtotime($strStartDate)); // return Sunday, Monday,Tuesday.... $strStartDate = date ( "Y-m-d" , strtotime ( "+1 day" , strtotime ( $strStartDate ))); } $inputDate = "2020-10-24" ; $remain = 50; // 50% $sendDate = null; if (in_array( $inputDate , $holidayDate )){ if ( $remain >= 30){ $sendDate = date ( "Y-m-d" , strtotime ( "+4 day" , strtotime ( $inputDate ))); } else { $sendDate = date ( "Y-m-d" , strtotime ( "-4 day" , strtotime ( $inputDate ))); } } echo $sendDate ; |
บทความแนะนำที่เกี่ยวข้อง | |
---|---|
การใช้งานรูปแบบข้อความวันที่และเวลา กับฟังก์ชั่น strtotime() ใน php | อ่าน 56,363 |

ขอบคุณทุกการสนับสนุน
![]()