I need to calculate the duration between two datetimes in JavaScript. I have tried this code:
var today = new Date();
var dd = today.getDate();
var mm = today.getMonth()+1; //January is 0!
var yyyy = today.getFullYear();
if(dd<10){dd='0'+dd} if(mm<10){mm='0'+mm} today = mm+'/'+dd+'/'+yyyy; //Current Date
console.log("current date"+today);
var valuestart ="8:00 AM";
var valuestop = "4:00 PM";//$("select[name='timestop']").val();
//create date format
var timeStart = new Date("01/01/2007 " + valuestart).getHours();
var timeEnd = new Date("01/01/2007 " + valuestop).getHours();
var hourDiff = timeEnd - timeStart;
console.log("duration"+hourDiff);
From this, I am able to get Current Date and duration. But when I replace the date "01/01/2007" with the variable "today", I am getting the result as NaN. Please guide me in where I am wrong. Thanks in advance.
You should work on the epoch milliseconds. The idea is to transform everything to the epoch millis representation, perform your calculations, then go back to another format if needed.
There are many articles on the subject:
Try this :
var today = new Date();
var dd = today.getDate();
var mm = today.getMonth()+1; //January is 0!
var yyyy = today.getFullYear();
if(dd<10){dd='0'+dd} if(mm<10){mm='0'+mm} today = dd+'/'+mm+'/'+yyyy; //Current Date
var valuestart ="8:00 AM";
var valuestop = "4:00 PM";//$("select[name='timestop']").val();
//create date format
var timeStart = new Date(today + " " + valuestart).getHours();
var timeEnd = new Date(today + " " + valuestop).getHours();
var hourDiff = timeEnd - timeStart;
alert("duration:"+hourDiff);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With