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:
โค้ดตัวอย่าง
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 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 | <!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 > |