PHP Ionic Angularjs Phonegap AJAX Javascript CSS MySQL jQuery Forum

ใช้ moment.js หาอายุ จากวัน เดือนปี เกิด อย่างง่าย

18 November 2014 By




moment.js หรือ javascript สำหรับการกำหนดรูปแบบการใช้งาน
กับวันที่และเวลา มีความสามารถหลายด้าน ส่วนหนึ่งที่จะมาแนะนำคือ
การหาผลต่างของสองช่วงเวลา โดยตัวอย่างจะนำมาใช้ในการ
คำนวณหาอายุ อย่างง่าย สามารถนำเอาไปปรับแต่งและใช้งานเพิ่มเติมได้
 
โดยจะใช้ DateTimePicker ประกอบ
 
ปรับแต่ง DateTimePicker ให้รองรับ ปี พ.ศ. อย่างสมบูรณ์ 
http://www.ninenik.com/content.php?arti_id=576 via @ninenik
 
และก็ใช้งานไฟล์ moment.js เพือหาจำนวนปีที่ห่าง
 
แนะนำ moment.js สำหรับการจัดการกับ เวลา ด้วย javascript 
http://www.ninenik.com/content.php?arti_id=574 via @ninenik
 
ตัวอย่าง
 

BirthDay:

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>

Tags:: moment javascript เวลา



เนื้อหาด้านบน จะมีปัญหาเกี่ยวกับปี พ.ศ. ให้เปลี่ยนมาใช้ตัวอย่าง จาก
คำถามตามลิ้งค์ด้านล่างนี้แทน

http://www.ninenik.com/forum_view_2076_1.html




URL สำหรับอ้างอิง