5

I am trying to write a program that works out the difference between two dates using JavaScript. The two dates I want to compare are entered using a HTML form using the date format. I want to compare the two entered dates using javaScript, specifically, to find the difference between the two dates in full weeks and then the remaining days. I have managed to compare two hardcoded dates in javaScript, but am having trouble doing this with two dates in a form. Any pointers would be much appreciated! Below is the javaScript program:

   <!DOCTYPE html>
   <html>
   <title> Dates </title>
   <head>Class Test

   <script language="javascript">
   function Ict5() { // ALERT BOX
   today = new Date(); //Using new Date(), creates a new date object with the current date and time

  birthday = new Date("March 28, 1995"); //using new date with stuff in the brackets, assigns the date to the variable
  birthday.setFullYear(1995); 
  msPerDay = 24 * 60 * 60 * 1000;
  msPerWeek = 7 * 24 * 60 * 60 * 1000;
  msBetween = (today.getTime() - birthday.getTime()); //get time Returns the number of milliseconds since midnight Jan 1, 1970
  daysBetween = Math.round(msBetween/msPerDay); //math round returns the value of a number rounded to the nearest integer.
  weeksBetween = Math.floor(msBetween/msPerWeek);
  window.alert("There are " +daysBetween+ " days or " +weeksBetween+ " full weeks between my date of birth and today ");
  }
  </script>
  </head>
  <body>

  <H1> An Example of Form </H1>



 <Form action="process.pl" method="POST" name="MyForm" onsubmit="return formValidation()">

            <p>Enter Date:</p>
            <input type=date name="date1" id="date1">
            <input type=date name="date2" id="date2">
 <button type="button" onclick="Ict5()">Calculate Fare</button><br>

    </Form>        


 </body>

</html> 

2 Answers2

1

You could accomplish this using the moment.js library particularly the manipulation methods. Once you cast the JS date into a moment object you can query moment.week() and get the number you're looking for.

var week1 = moment("2015-2-1").week(); var week2 = moment("2015-2-8").week(); var numOfWeeksInBetween = week2 - week1;

Rick Schmidt
  • 497
  • 2
  • 10
0

You can get the value from the inputs like this:

var date1 = new Date(document.getElementById("date1").value);
zord
  • 4,538
  • 2
  • 25
  • 30