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

เขียนเมื่อ 10 ปีก่อน โดย Ninenik Narkdee
เวลา javascript moment

คำสั่ง การ กำหนด รูปแบบ ตัวอย่าง เทคนิค ลูกเล่น การประยุกต์ การใช้งาน เกี่ยวกับ เวลา javascript moment

ดูแล้ว 20,070 ครั้ง




moment.js หรือ javascript สำหรับการกำหนดรูปแบบการใช้งาน
กับวันที่และเวลา มีความสามารถหลายด้าน ส่วนหนึ่งที่จะมาแนะนำคือ
การหาผลต่างของสองช่วงเวลา โดยตัวอย่างจะนำมาใช้ในการ
คำนวณหาอายุ อย่างง่าย สามารถนำเอาไปปรับแต่งและใช้งานเพิ่มเติมได้
 
โดยจะใช้ DateTimePicker ประกอบ
 
ปรับแต่ง DateTimePicker ให้รองรับ ปี พ.ศ. อย่างสมบูรณ์ 
 
และก็ใช้งานไฟล์ moment.js เพือหาจำนวนปีที่ห่าง
 
แนะนำ moment.js สำหรับการจัดการกับ เวลา ด้วย javascript 
 
ตัวอย่าง
 

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>


   เพิ่มเติมเนื้อหา ครั้งที่ 1 วันที่ 27-06-2017


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


กด Like หรือ Share เป็นกำลังใจ ให้มีบทความใหม่ๆ เรื่อยๆ น่ะครับ











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





คำแนะนำ และการใช้งาน

สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก


  • ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ
  • เปลี่ยน


    ( หรือ เข้าใช้งานผ่าน Social Login )







เว็บไซต์ของเราให้บริการเนื้อหาบทความสำหรับนักพัฒนา โดยพึ่งพารายได้เล็กน้อยจากการแสดงโฆษณา โปรดสนับสนุนเว็บไซต์ของเราด้วยการปิดการใช้งานตัวปิดกั้นโฆษณา (Disable Ads Blocker) ขอบคุณครับ