ผมเขียนระบบที่เกี่ยวกับเวลาขึ้นมา และสร้างฟังค์ชั่น calculate เอาไว้ โดยให้ admin เป็นคนกรอกเวลา เช่น 8.00 - 20.00 ซึ่งถ้าเป็นเวลา 0.00 - 24.00 น. ก็จะเป็นปรกติของระบบ
แต่ถ้ากรอกเป็น 25.00 - 28.00 ระบบมันยังคำนวนนะครับ ว่าเป็นเวลา 3 ชม. แต่ความเป็นจริงแล้ว เวลาใน 1 วัน มันมีแค่ 24 ชั่วโมง ^_^
ปัญหาคือ ผมจะแก้ไขในส่วนนี้ได้อย่างไร ให้อาจารย์ดูท่านก็บอกให้ไปแก้ในส่วนนี้มา คนโค้ดก็ไม่ได้นึกถึงในส่วนนี้มาก่อนซะด้วย
regard
mr.man
ทำไมไม่ใช้ if ตรวจสอบแล้วหารเอาเศษเอาหว่า - -"
ถ้าเป็น php มันจะออกมาหน้าตาประมาณนี้
$time = 25.30
if($time > 24){
$time = $time%24;
}
ส่วนของ ruby ลองดัดแปลงเอาครับ ผมไม่เคยใช้ - -"
ผมว่ากรณีนี้น่าจะเป็น Input Error มากกว่านะครับ ^^'
เช็คค่าว่าอยู่ในช่วง 0-24 หรือเปล่า ถ้าไม่ก็แสดงผลว่าอินพุตผิดพลาดน่าจะถูกกว่านะครับ ถ้าเอาไป %24 เพื่อให้ได้ค่าในช่วง 0-24 มันผิด Logic นะผมว่า มันผิดสามัญสำนึกน่ะครับ 55
ThaiGameDevX -- The First Game Developer Community in Thailand.
เห็น จขกท บอกว่ามันยังประมวลผลให้ เลยคิดว่าคงจะทำให้รองรับแบบนี้น่ะ - -"
ที่จริงถ้าจะให้แจ้งว่า input error ก็เปลี่ยนตรง $time = $time%24 (ส่วนที่ปรับเวลาให้เข้าห้วง 24 ชั่วโมง) ให้เปลี่ยนแจ้งว่า input error ก็ได้ครับ แหะๆ
field มันเก็บแยกกันหรือเปล่าครับ? ระหว่างเวลาเริ่มกับเวลาสิ้นสุด
แนะนำให้ใช้ Time.parse() แต่ละ field แล้วดูว่ามี exception หรือเปล่าครับ ง่ายที่สุดแล้ว
ถ้าเก็บไว้ field เดียวกันก็ใช้ time.split(/ - /) แบ่งออกมาครับ
และถ้าง่ายที่สุด ใช้ date_select ไปเลยครับ ให้เป็น drop down ไปเลย
ข้อมูลน้อยไป ตอบกว้างไปหน่อยนะครับ :D
บล็อกของผม: http://sikachu.com
บล็อกของผม: http://sikachu.com
ใช่ครับ ฟิลด์เก็บแยกกัน ระหว่างเริ่มต้น - สิ้นสุด
หรือผมจะใช้การ valid ดีครับ ว่าถ้ากรอกเกิน 24 ให้เด้ง alert ขึ้นมา
แบบว่า ยิ่งทำมันยิ่งตื้อครับ อยากพรีเซ้นเต็มแก่แล้วอะ