Jump to content

JS: Subtract two date values and store the difference


caspio

Recommended Posts

JavaScript Solution: Subtract two date values to obtain the number of years the dates differ

Feature Description:
This JavaScript solution shows how to perform date arithmetic in a Submission Form.
Two date values entered into fields of a form are subtracted to return the number of years by which they differ.
The result is stored in another field in the same Submission Form. This calculation is performed when the DataPage is submitted by the user.

Implementation:
This solution can be used "as-is", without any changes if
a. It is used in an Submission Form DataPage and
b. The two date values to be subtracted are in the Caspio Bridge supported Date/Time format of mm/dd/yyyy and
c. The input date fields are named StartDate and EndDate while the field storing the difference is named Years.

To use this solution copy and paste the code below, inside the HTML Footer section of the Submission Form using the Caspio Bridge DataPage Wizard.

 

 

 

<SCRIPT LANGUAGE="JavaScript">

 function getDiff()
 { 
   /* Retrieve the value of the field StartDate and store in a variable 'v_sDate' */
   var v_sDate = document.getElementById("InsertRecordStartDate").value;
   /* Retrieve the value of the field EndDate and store in a variable 'v_eDate' */
   var v_eDate = document.getElementById("InsertRecordEndDate").value;
   var sDate = new Date(v_sDate);
   var eDate = new Date(v_eDate);
   var sYear = sDate.getFullYear();                               
   var eYear = eDate.getFullYear();
   var years = Math.abs(eYear - sYear);

   /* Insert the diffrencer stored in years into the DataPage field Years */
   document.getElementById("InsertRecordYears").value=years;
 }   

 /* On submitting the webform, the function getDiff is executed */
 document.getElementById("caspioform").onsubmit=getDiff;

</SCRIPT>

Here is another example using BeginDate and FinishDate to calculate and store the YearsDifference:

<SCRIPT LANGUAGE="JavaScript">

 function getDiff()
 { 
   var v_sDate = document.getElementById("InsertRecordBeginDate").value;
   var v_eDate = document.getElementById("InsertRecordFinishDate").value;
   var sDate = new Date(v_sDate);
   var eDate = new Date(v_eDate);
   var sYear = sDate.getFullYear();                               
   var eYear = eDate.getFullYear();
   var years = Math.abs(eYear - sYear);
   document.getElementById("InsertRecordYearsDifference").value=years;
 }   

 /* On submitting the webform, the function getDiff is executed */
 document.getElementById("caspioform").onsubmit=getDiff;

</SCRIPT>

Additional Considerations
# The field that stores the result of the calculation may have validation rules placed upon it which may prevent this solution from working correctly.

Tested Browsers
This JavaScript solution was tested on the following platforms and Internet Browsers only.
# MS Windows - IE 8.0, Firefox 3.5.7, Chrome 3.0.195.38, Safari 4.0.3
# Macintosh - Firefox 3.5.7, Safari 4.0.3

Disclaimer: Use these JavaScript solutions at your own risk! They are provided to assist you in the customization of your programs and while we believe they work properly, by using them you accept all responsibility about them and confirm that they are not a feature of Caspio's platforms and as such are provided "as is" without any warranties, support or guarantees.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...