moment.js หรือ javascript สำหรับการกำหนดรูปแบบการใช้งาน
กับวันที่และเวลา มีความสามารถหลายด้าน ส่วนหนึ่งที่จะมาแนะนำคือ
การหาผลต่างของสองช่วงเวลา โดยตัวอย่างจะนำมาใช้ในการ
คำนวณหาอายุ อย่างง่าย สามารถนำเอาไปปรับแต่งและใช้งานเพิ่มเติมได้
โดยจะใช้ DateTimePicker ประกอบ
ปรับแต่ง DateTimePicker ให้รองรับ ปี พ.ศ. อย่างสมบูรณ์
https://www.ninenik.com/content.php?arti_id=576 via @ninenik
และก็ใช้งานไฟล์ moment.js เพือหาจำนวนปีที่ห่าง
แนะนำ moment.js สำหรับการจัดการกับ เวลา ด้วย javascript
https://www.ninenik.com/content.php?arti_id=574 via @ninenik
ตัวอย่าง
BirthDay:
Age:
Age:
โค้ดตัวอย่าง
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Age</title> <link rel="stylesheet" href="js/jquery.datetimepicker.css"> </head> <body> <br><br> <div style="margin:auto;width:500px;"> BirthDay: <input type="text" name="mydateth" id="mydateth" value=""> <br><br> Age: <input type="text" name="age" id="age" value=""> <br><br> <div id="mydateth3"></div> </div> <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> <script src="js/jquery.datetimepicker.js"></script> <script type="text/javascript" src="js/moment-with-locales.min.js"></script> <script type="text/javascript"> $(function(){ var thaiYear = function (ct) { var leap=3; var dayWeek=["พฤ.", "ศ.", "ส.", "อา.","จ.", "อ.", "พ."]; if(ct){ var yearL=new Date(ct).getFullYear()-543; leap=(((yearL % 4 == 0) && (yearL % 100 != 0)) || (yearL % 400 == 0))?2:3; if(leap==2){ dayWeek=["ศ.", "ส.", "อา.", "จ.","อ.", "พ.", "พฤ."]; } } this.setOptions({ i18n:{ th:{dayOfWeek:dayWeek}},dayOfWeekStart:leap, }) }; $("#mydateth").datetimepicker({ timepicker:false, // กำหนด ไม่แสดงตัวเลือกเวลา format:'d-m-Y', // กำหนดรูปแบบวันที่ ที่ใช้ เป็น 00-00-0000 lang:'th', // แสดงภาษาไทย yearStart:1914, // ช่วงเลือกปีเริ่มต้น ใช้ ค.ศ. yearOffset:543, // ใช้ปี พ.ศ. บวก 543 เพิ่มเข้าไปในปี ค.ศ onShow:thaiYear, onChangeMonth:thaiYear, closeOnDateSelect:true, // ปิด ถ้าเลือกวันที่แล้ว }); $("#mydateth").on("change",function(){ var dayBirth=$(this).val(); var getdayBirth=dayBirth.split("-"); var YB=getdayBirth[2]-543; var MB=getdayBirth[1]; var DB=getdayBirth[0]; var setdayBirth=moment(YB+"-"+MB+"-"+DB); var setNowDate=moment(); var yearData=setNowDate.diff(setdayBirth, 'years', true); // ข้อมูลปีแบบทศนิยม var yearFinal=Math.round(setNowDate.diff(setdayBirth, 'years', true),0); // ปีเต็ม var yearReal=setNowDate.diff(setdayBirth, 'years'); // ปีจริง var monthDiff=Math.floor((yearData-yearReal)*12); // เดือน var str_year_month=yearReal+" ปี "+monthDiff+" เดือน"; // ต่อวันเดือนปี $("#age").val(str_year_month); }); }); </script> </body> </html>