Advertisement
Guest User

date calculator in JavaScript

a guest
Jun 10th, 2022
30
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function calcDate(date1, date2){
  2.  
  3. // initiate date object
  4. var dt_date1 = new Date(date1);
  5. var dt_date2 = new Date(date2);
  6. // get the time stamp
  7. date1 = dt_date1.getTime();
  8. date2 = dt_date2.getTime();
  9.  
  10. var calc;
  11. // check which time stamp is greater
  12. if (date1 > date2){
  13.     calc = new Date(date1 - date2) ;
  14. }else{
  15.     calc = new Date(date2 - date1) ;
  16. }
  17.  
  18. // retrieve the date, month and year
  19. var calc_format_tmp = calc.getDate() + '-' + (calc.getMonth()+1)+ '-'+calc.getFullYear();
  20. // convert to an array and store
  21. var calc_format = calc_format_tmp.split("-");
  22. // subtract each member of our array from the default date
  23. var days_passed = parseInt(Math.abs(calc_format[0]) - 1);
  24. var months_passed = parseInt(Math.abs(calc_format[1]) - 1);
  25. var years_passed = parseInt(Math.abs(calc_format[2] -   1970));
  26.  
  27. // set up custom text
  28. var years_plural = ["year", "years"];
  29. var months_plural = ["month", "months"];
  30. var days_plural = ["day", "days"];
  31.  
  32. // convert to days and sum together
  33. var total_days = (years_passed * 365) + (months_passed * 30.417) + days_passed;
  34.  
  35. // display result with custom text
  36. var result = ""; // declare string
  37. if (years_passed == 1) result+=years_passed+' ' + years_plural[0]+' ';
  38. if (years_passed > 1 ) result+=years_passed+' ' + years_plural[1]+' ';
  39. if (months_passed == 1) result+=months_passed+' ' + months_plural[0]+' ';
  40. if (months_passed > 1 ) result+=months_passed+' ' + months_plural[1]+' ';
  41. if (days_passed == 1) result+=days_passed+' ' + days_plural[0];
  42. if (days_passed > 1 ) result+=days_passed+' ' + days_plural[1];
  43.  
  44. // return the result
  45. return {
  46.     "total_days" : Math.round(total_days),
  47.     "result" :  result
  48. };
  49.  
  50. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement