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>