Get DOB from age

Javascript coding ..

Moderators: gesf, Michalio

Post Reply
Dharmeshdhabu
New php-forum User
New php-forum User
Posts: 4
Joined: Sat Jul 23, 2022 6:45 pm

Dear members,
I have created software for hospital management. I want DOB from age. I created a script and it gives DOB in string form. I want it in date formate. Please help me. Below is my script

Code: Select all

  <script>
										  function test() {
										  var age = document.getElementById('agetxt').value;
										  
										  var today = new Date();
										  var dd = today.getDate();
										  
										  var mm = today.getMonth()+1; 
										  var yyyy = today.getFullYear();
										  
										  var poonam = yyyy - age;
										  if(dd<10) 
										  {
											dd='0'+dd;
										  } 
										  if(mm<10) 
										  {
											mm='0'+mm;
										  } 
										  today = dd+'/'+mm+'/'+yyyy;
										  
										  document.getElementById('dobresultt').value = dd+'-'+mm+'-'+poonam;
										  }
									   </script>
									  
									  
User avatar
Michalio
Moderator
Moderator
Posts: 211
Joined: Sun Jul 18, 2021 1:33 pm
Location: Poland

It is partially impossible, because you don't know the day and month, you can for example assume that today is someones birthday:

Code: Select all

function getDOBFromAge(age) {
    const date = new Date();
    date.setFullYear(date.getFullYear() - age);
    return date.toISOString().substring(0, 10);
}
const dob = getDOBFromAge(18)
console.log({dob});
Free coding lessons: https://php-forum.com/phpforum/viewtopic.php?t=29852
Dharmeshdhabu
New php-forum User
New php-forum User
Posts: 4
Joined: Sat Jul 23, 2022 6:45 pm

Michalio wrote: Fri Jul 29, 2022 2:45 am It is partially impossible, because you don't know the day and month, you can for example assume that today is someones birthday:

Code: Select all

function getDOBFromAge(age) {
    const date = new Date();
    date.setFullYear(date.getFullYear() - age);
    return date.toISOString().substring(0, 10);
}
const dob = getDOBFromAge(18)
console.log({dob});
I could not understand your solution. I need DOB assuming today is his birth day. In my softwere there is text type input box. When for example 20 is entered softwere should return DOB 29-07-2002 into input box which is date type of input box. Below are my input as well code. When I change input type from text to date it donot give me result. Please help me. I tried code you suggested but actually I could not understand it fully. Thanks for your reply.

Code: Select all

<div class="form-group">
									   <label>Age</label>
									   <input class="form-control" id="agetxt" onkeyup="test()" name="age" value="<?php echo trim($age); ?>">
									</div>	
									
									<div class="form-group">
									   <label>D.O.B.</label>
									   <script>
										  function test() {
										  var age = document.getElementById('agetxt').value;
										  
										  var today = new Date();
										  var dd = today.getDate();
										  
										  var mm = today.getMonth()+1; 
										  var yyyy = today.getFullYear();
										  
										  var poonam = yyyy - age;
										  if(dd<10) 
										  {
											dd='0'+dd;
										  } 
										  if(mm<10) 
										  {
											mm='0'+mm;
										  } 
										  today = dd+'/'+mm+'/'+yyyy;
										  
										  document.getElementById('dobresultt').value = dd+'-'+mm+'-'+poonam;
										  }
										  function getDOBFromAge(age) {
												const date = new Date();
												date.setFullYear(date.getFullYear() - age);
												return date.toISOString().substring(0, 10);
											}
											const dob = getDOBFromAge(18)
											console.log({dob});
																				   </script>
									   <input class="form-control" type="text" id="dobresultt" name="dobt" value="<?php echo trim($dobt); ?>"required>
									   <input class="form-control" type="date" id="dobresult" name="dob" value="<?php echo trim($dob); ?>"required>
									
User avatar
Michalio
Moderator
Moderator
Posts: 211
Joined: Sun Jul 18, 2021 1:33 pm
Location: Poland

The date input requires the yyyy-mm-dd format so you can use:

Code: Select all

function getDOBFromAge(age) {
    const date = new Date();
    date.setFullYear(date.getFullYear() - age);
    return date.toISOString().substring(0, 10).split('.').join('-');
}
Free coding lessons: https://php-forum.com/phpforum/viewtopic.php?t=29852
Post Reply