PHP Ionic Angularjs Phonegap AJAX Javascript CSS MySQL jQuery Forum

ช่วยดูโค๊ดคำนวณอายุให้หน่อยคะ คือต้องการคำนวณจากวันเดือนปี ต้องเปลี่ยนตรงไหนคะจากเดิมเป็นปีเดือนวัน

ช่วยดูโค๊ดคำนวณอายุให้หน่อยคะ คือต้องการคำนวณจากวันเดือนปี ต้องเปลี่ยนตรงไหนคะจากเดิมเป็นปีเดือนวัน
 <script type="text/javascript">
$(function () {
    	var dateBefore=null;
	$("#bday").datepicker({
		dateFormat: 'dd-mm-yy',
		dayNamesMin: ['อา', 'จ', 'อ', 'พ', 'พฤ', 'ศ', 'ส'], 
		monthNamesShort: ['มกราคม','กุมภาพันธ์','มีนาคม','เมษายน','พฤษภาคม','มิถุนายน','กรกฎาคม','สิงหาคม','กันยายน','ตุลาคม','พฤศจิกายน','ธันวาคม'],
		changeMonth: true,
		changeYear: true ,
		showAnim: "clip",
		yearRange: '1935:2005' ,
		showButtonPanel: true,
				beforeShow:function(){
					if($(this).val()!=""){
						var arrayDate=$(this).val().split("-");		
						arrayDate[2]=parseInt(arrayDate[2])-543;
						$(this).val(arrayDate[0]+"-"+arrayDate[1]+"-"+arrayDate[2]);
					}
					setTimeout(function(){
						$.each($(".ui-datepicker-year option"),function(j,k){
							var textYear=parseInt($(".ui-datepicker-year option").eq(j).val())+543;
							$(".ui-datepicker-year option").eq(j).text(textYear);
						});				
					},50);
		},
		onChangeMonthYear: function(){
			setTimeout(function(){
				$.each($(".ui-datepicker-year option"),function(j,k){
					var textYear=parseInt($(".ui-datepicker-year option").eq(j).val())+543;
					$(".ui-datepicker-year option").eq(j).text(textYear);
				});				
			},50);		
		},
		onClose:function(){
			if (dateBefore == null) {
dateBefore=$(this).val();
}
if($(this).val()!="" && $(this).val()==dateBefore){
var arrayDate=dateBefore.split("-");
arrayDate[2]=parseInt(arrayDate[2])+543;
$(this).val(arrayDate[0]+"-"+arrayDate[1]+"-"+arrayDate[2]);	
			}		
		},
		onSelect: function(dateText, inst){ 
			dateBefore=$(this).val();
			var arrayDate=dateText.split("-");
			arrayDate[2]=parseInt(arrayDate[2])+543;
			$(this).val(arrayDate[0]+"-"+arrayDate[1]+"-"+arrayDate[2]);

//คำนวนอายุอัตโนมัติ
var bdate = $('#bday').val();
 if(bdate != ''){
	var str=bdate.split('-');    
    var firstdate=new Date(str[0],str[1],str[2]);
    var today = new Date();        
    var dayDiff = Math.ceil(today.getTime() - firstdate.getTime()) / (1000 * 60 * 60 * 24 * 365);
    var thisage = parseInt(dayDiff);
    $('#age').val(thisage);
$("#age").attr('readonly', true);
 }
//end calulate
		}
});		
		
 
 
 }); 
		
 
</script>    



โดย:  Tanyarat Tepsanta IP: 119.76.100.xxx วันที่: 02-08-2016 เวลา: 13:38:43

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

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


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


  • ( หรือ สามารถทำการ สมัครสมาชิก และล็อกอิน ด้วย ปุ่ม Log in with Facebook ด้านล่าง )
 ความคิดเห็นที่ 15
ได้แล้ว ขอบคุณคะ

โดย:  Tanyarat Tepsanta IP: 119.76.100.xxx วันที่: 08-08-2016 เวลา: 12:48:56
 ความคิดเห็นที่ 14
การกำหนดค่าอื่นๆ เพิ่มเติมได้อธิบายได้แล้วในความคิดเห็นที่ 6
สามารถเข้าไปดูว่าเราจะสามารถกำหนดอะไรได้บ้าง ตามขอบเขตที่สามมรถทำได้

ดูการกำหนดค่าอื่นๆ เพิ่มเติมที่ 
 
http://xdsoft.net/jqplugins/datetimepicker/
 
ดูหัวข้อตารางชื่อว่า Full options list
 
อย่างกำหนดหยุดทุกๆ วันนั้นๆ ของแต่ละเดือน ก็ใช้ disabledWeekDays เช่น
 
disabledWeekDays:[1], // ทุกวันวันทร์ 
 
หรือ
 
disabledWeekDays:[1,2], // ทุกวันวันทร์  วันอังคาร
 
0 2 3 - ... - 6 คือ วัน ที่ต้องการ จาก อาทิตย์ ถึง เสาร์
 
 
ส่วนการกำหนดให้เลือกวันหยุดไม่ได้ ให้ดูที่การกำหนด disabledDates ตรงนี้ถ้ามีหลายค่าก็ต้องกำหนดเอง
 
disabledDates: ['01.01.2014','02.01.2014','03.01.2014','04.01.2014','05.01.2014','06.01.2014']
 
ตัวอย่างการใช้งาน
 
	var objBD=$("#mydateth");
	// กรณีใช้แบบ input
    objBD.datetimepicker({
		yearStart:'1982',
		yearEnd:'2016',
		disabledWeekDays:[1], // กำหนดวันจันทร์ในเดือนนั้นให้เลือกไม่ได้
		disabledDates: ['12.08.2016','05.12.2016'], // กำหนดวันที่ที่เป็นวันหยุดไม่ให้สมารถเลือกได้
..................
............
..........


โดย:  Ninenik IP: 180.183.50.xxx วันที่: 08-08-2016
 ความคิดเห็นที่ 13
ช่วยตอบหน่อยนะคะ ต้องการล็อกวันจันทร์ทุุกจันทร์ แล้วก็วันนักขัตฤกษ์จะเขียนโค๊ดยังไงคะ

โดย:  Tanyarat Tepsanta IP: 119.76.100.xxx วันที่: 07-08-2016 เวลา: 21:55:53
 ความคิดเห็นที่ 12
ขอบคุณคะ แล้วถ้าต้องการล็อกไม่ให้สามารถเลือกวันจันทร์ได้ ควรเขียนโค๊ดยังไงคะ

โดย:  Tanyarat Tepsanta IP: 119.76.100.xxx วันที่: 05-08-2016 เวลา: 01:20:23
 ความคิดเห็นที่ 11
น่าจะประมาณนี้

<?php echo date('d-m-',strtotime($result['bday'])); echo date('Y',strtotime($result['bday']))+543;?>  


>>>  อัพเดท >>> 03-08-2016
------------------------------------------
หรือดูฟังก์ชั่นจากเนื้อหาต่อไปนี้เป็นแนวทาง

สร้างฟังก์ชั่น แสดงวันที่ ภาษาไทย ด้วย php อย่างง่าย 
http://www.ninenik.com/content.php?arti_id=459 via @ninenik


โดย:  Ninenik IP: 180.183.50.xxx วันที่: 03-08-2016
 ความคิดเห็นที่ 10
ทำได้แล้วคะ แต่มันยังเป็น คศ อยู่ จะบวก 543 ควรเขียนโค๊ดยังไงคะ


<?php echo date('d-m-Y',strtotime($result['bday']));?>


โดย:  Tanyarat Tepsanta IP: 119.76.100.xxx วันที่: 03-08-2016 เวลา: 14:49:43
 ความคิดเห็นที่ 9
ต้องการดึงวันที่ซึ่งเก็บเป็นปีเดือนวัน จากฐานข้อมูล มาโชว์ในตาราง เป็นวันเดือนปีอ่าคะ จะทำยังไง

<script type="text/javascript">
$(function(){
  
  
	$.datetimepicker.setLocale('th'); // ต้องกำหนดเสมอถ้าใช้ภาษาไทย และ เป็นปี พ.ศ.
	var objBD=$("#bday");
	// กรณีใช้แบบ input
    objBD.datetimepicker({
		yearStart:'1935',
		yearEnd:'1997',
        timepicker:false,
        format:'d-m-Y',  // กำหนดรูปแบบวันที่ ที่ใช้ เป็น 00-00-0000			
        lang:'th',  // ต้องกำหนดเสมอถ้าใช้ภาษาไทย และ เป็นปี พ.ศ.
		onSelectDate:function(dp,$input){
			var yearT=new Date(dp).getFullYear()-0;  
			var yearTH=yearT+543;
			var fulldate=$input.val();
			var fulldateTH=fulldate.replace(yearT,yearTH);
			$input.val(fulldateTH);
			
			// ส่วนของการจัดการวันที่ เพื่อหาจำนวนอายุ
			var dayBirth=objBD.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+" "; // ต่อวันเดือนปี    
			$("#age").val(str_year_month);    						
								
		},
    });       
	// กรณีใช้กับ input ต้องกำหนดส่วนนี้ด้วยเสมอ เพื่อปรับปีให้เป็น ค.ศ. ก่อนแสดงปฏิทิน
	objBD.on("mouseenter mouseleave",function(e){
		var dateValue=objBD.val();
		if(dateValue!=""){
				var arr_date=dateValue.split("-"); // ถ้าใช้ตัวแบ่งรูปแบบอื่น ให้เปลี่ยนเป็นตามรูปแบบนั้น
				// ในที่นี้อยู่ในรูปแบบ 00-00-0000 เป็น d-m-Y  แบ่งด่วย - ดังนั้น ตัวแปรที่เป็นปี จะอยู่ใน array
				//  ตัวที่สอง arr_date[2] โดยเริ่มนับจาก 0 
				if(e.type=="mouseenter"){
					var yearT=arr_date[2]-543;
				}		
				if(e.type=="mouseleave"){
					var yearT=parseInt(arr_date[2])+543;										
				}	
				dateValue=dateValue.replace(arr_date[2],yearT);
				objBD.val(dateValue);	
																			
		}		
	});
    
    
});
</script> 
 <?php

				  ####เริ่มส่วนค้นหาจากสมาชิก
				  if ($_GET['action'] == "search") {
				  if ($_POST['memID'] <> NULL) {
					  $sql = "SELECT * FROM tb_member WHERE memberID = '".trim($_POST['memID'])."'";
					  $query = mysql_query($sql) or die (mysql_error());
					  $row = mysql_num_rows($query);
					  if ($row <> 0) {
					  $result = mysql_fetch_assoc($query);

					  ?>
                      <?
				  }
				  }
				  }
				  
				  ####### จบส่วนค้นหาจากสมาชิก
				  ?>

<input name="bday" type="text" id="bday" value="<?=$result["bday"];?>" size="15" maxlength="15" />



โดย:  Tanyarat Tepsanta IP: 119.76.100.xxx วันที่: 03-08-2016 เวลา: 14:40:13
 ความคิดเห็นที่ 8


โดย:  Ninenik IP: 180.183.50.xxx วันที่: 03-08-2016
 ความคิดเห็นที่ 7
ขอบคุณนะคะ คือตอนนี้ลงฐานข้อมูลแล้วแต่พอเวลาดึงมาโชว์มันเป็น yy-mm-dd ควรเขียนโค๊ดยังไงให้เป็น dd-mm-yy คะ

โดย:  Tanyarat Tepsanta IP: 119.76.100.xxx วันที่: 03-08-2016 เวลา: 13:50:21
 ความคิดเห็นที่ 6
ในส่วนของการกำหนดค่า datetimepicker กำหนดเพิ่มค่า 
yearStart กับ yearEnd เข้าไป ใช้เป้นค่าปี ค.ศ.
 
ต้วยอย่างโค้ดเดิม
 
	var objBD=$("#mydateth");
	// กรณีใช้แบบ input
    objBD.datetimepicker({
        timepicker:false,
        format:'d-m-Y',  // กำหนดรูปแบบวันที่ ที่ใช้ เป็น 00-00-0000			
        lang:'th',  // ต้องกำหนดเสมอถ้าใช้ภาษาไทย และ เป็นปี พ.ศ.
 
เพิ่มเป็น
 
	var objBD=$("#mydateth");
	// กรณีใช้แบบ input
    objBD.datetimepicker({
		yearStart:'1950',
		yearEnd:'2020',
        timepicker:false,
        format:'d-m-Y',  // กำหนดรูปแบบวันที่ ที่ใช้ เป็น 00-00-0000			
        lang:'th',  // ต้องกำหนดเสมอถ้าใช้ภาษาไทย และ เป็นปี พ.ศ.
 
 
หรือดูการกำหนดค่าอื่นๆ เพิ่มเติมที่ 
 
http://xdsoft.net/jqplugins/datetimepicker/
 
ดูหัวข้อตารางชื่อว่า Full options list


โดย:  Ninenik IP: 14.207.92.xxx วันที่: 03-08-2016
 ความคิดเห็นที่ 5
ได้แล้วคะ ขอบคุณนะคะ แล้วถ้าต้องการกำหนดช่วงปีเริ่มต้น สิ้นสุดเอง  ควรเขียนโค๊ดยังไงคะ

โดย:  Tanyarat Tepsanta IP: 119.76.100.xxx วันที่: 02-08-2016 เวลา: 23:59:15
 ความคิดเห็นที่ 4
ตัว datetimepicker เรื่องเกี่ยวกับปี พ.ศ. ภาษาไทยจะไม่ค่อยสมบูรณ์ ต้องปรับให้พอใช้งานได้
ให้ไปโหลดไฟล์ css และ javascript สองไฟล์ที่ลิ้งค์นี้
 
jquery.datetimepicker.css
jquery.datetimepicker.full.js
 
http://www.ninenik.com/demo/datetimepicker_th.php
 
และก็โหลดไฟล์ 
 
moment-with-locales.min.js
 
ที่ลิ้งค์นี้ คลิกขวาที่ลิ้งค์นี้แล้ว save
 
http://momentjs.com/downloads/moment-with-locales.min.js
 
การใช้งานก็ประมาณโค้ดด้านล่าง
 
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Age</title>
    <link rel="stylesheet" href="jquery.datetimepicker.css">
</head>
<body>
  
  <br><br>
<div style="margin:auto;width:500px;">
      
      BirthDay: <input type="text" name="mydateth" id="mydateth" value="05-06-2525">     
      <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="jquery.datetimepicker.full.js"></script>
<script type="text/javascript" src="moment-with-locales.min.js"></script>    
<script type="text/javascript">
$(function(){
  
  
	$.datetimepicker.setLocale('th'); // ต้องกำหนดเสมอถ้าใช้ภาษาไทย และ เป็นปี พ.ศ.
	
	var objBD=$("#mydateth");
	// กรณีใช้แบบ input
    objBD.datetimepicker({
        timepicker:false,
        format:'d-m-Y',  // กำหนดรูปแบบวันที่ ที่ใช้ เป็น 00-00-0000			
        lang:'th',  // ต้องกำหนดเสมอถ้าใช้ภาษาไทย และ เป็นปี พ.ศ.
		onSelectDate:function(dp,$input){
			var yearT=new Date(dp).getFullYear()-0;  
			var yearTH=yearT+543;
			var fulldate=$input.val();
			var fulldateTH=fulldate.replace(yearT,yearTH);
			$input.val(fulldateTH);
			
			// ส่วนของการจัดการวันที่ เพื่อหาจำนวนอายุ
			var dayBirth=objBD.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);    						
								
		},
    });       
	// กรณีใช้กับ input ต้องกำหนดส่วนนี้ด้วยเสมอ เพื่อปรับปีให้เป็น ค.ศ. ก่อนแสดงปฏิทิน
	objBD.on("mouseenter mouseleave",function(e){
		var dateValue=objBD.val();
		if(dateValue!=""){
				var arr_date=dateValue.split("-"); // ถ้าใช้ตัวแบ่งรูปแบบอื่น ให้เปลี่ยนเป็นตามรูปแบบนั้น
				// ในที่นี้อยู่ในรูปแบบ 00-00-0000 เป็น d-m-Y  แบ่งด่วย - ดังนั้น ตัวแปรที่เป็นปี จะอยู่ใน array
				//  ตัวที่สอง arr_date[2] โดยเริ่มนับจาก 0 
				if(e.type=="mouseenter"){
					var yearT=arr_date[2]-543;
				}		
				if(e.type=="mouseleave"){
					var yearT=parseInt(arr_date[2])+543;										
				}	
				dateValue=dateValue.replace(arr_date[2],yearT);
				objBD.val(dateValue);	
																			
		}		
	});
    
    
});
</script>    
</body>
</html>
 
ตัวอย่าง
 


BirthDay:

Age:

 
 


โดย:  Ninenik IP: 1.46.161.xxx วันที่: 02-08-2016
 ความคิดเห็นที่ 3
จากลิงค์นี้ http://www.ninenik.com/content.php?arti_id=577

โดย:  Tanyarat Tepsanta IP: 119.76.100.xxx วันที่: 02-08-2016 เวลา: 16:25:42
 ความคิดเห็นที่ 2
ทำได้แล้วคะ แต่ทำไมเดือนกุมภาของปีนี้ มันมี 28 วันทำยังไงให้มี 29 วันคะ

โดย:  Tanyarat Tepsanta IP: 119.76.100.xxx วันที่: 02-08-2016 เวลา: 16:24:29
 ความคิดเห็นที่ 1
 ไม่ค่อยเข้าใจที่ถาม
ลองดูเนือหานี้เป็นแนวทาง
ใช้ moment.js หาอายุ จากวัน เดือนปี เกิด อย่างง่าย 
http://www.ninenik.com/content.php?arti_id=577 via @ninenik


โดย:  Ninenik IP: 183.89.88.xxx วันที่: 02-08-2016