To add hours to a date, we can use the JavaScript getTime() method. The getTime() method converts dates into the number of milliseconds since January 1st, 1970. Since there are 3600000 milliseconds in 1 hour, we can add multiples of 3600000 to our converted date to add as many hours as we want.
var date1 = new Date();
var dateToMilliseconds = date1.getTime();
var addedHours = dateToMilliseconds + (3600000*5);
//This will add 5 hours to our time.
var newDate = new Date(addedHours);
//This will create a new date that will be 5 hours ahead of the current date
We can also add negative milliseconds to subtract hours from a date. Below are some examples of adding hours to a date object with the help of the getTime() method.
var date1 = new Date();
var dateToMilliseconds = date1.getTime();
var result1 = date1;
var result2 = new Date(dateToMilliseconds+(3600000*5));
var result3 = new Date(dateToMilliseconds+(3600000*24));
var result4 = new Date(dateToMilliseconds+(3600000*24*30));
var result5 = new Date(dateToMilliseconds+(-3600000*5));
Which would result in the following:
result2 = Fri Jan 21 2022 17:44:54 GMT-0500 (Eastern Standard Time);
result3 = Sat Jan 22 2022 12:44:54 GMT-0500 (Eastern Standard Time);
result4 = Sun Feb 20 2022 12:44:54 GMT-0500 (Eastern Standard Time);
result5 = Fri Jan 21 2022 07:44:54 GMT-0500 (Eastern Standard Time);
Add Hours to a Date Using JavaScript with a Click
In this example, we will let the user add hours to the current date using an input field. We will use the getTime() method to convert dates to milliseconds like we did above.
Here is our HTML setup:
How many hours do you want to add to the current date and time?
Below is the JavaScript code which will take the user input using the onclick event and run the function below. The function will add the hours to the current date like we did above. We will then update the #results div using the textContent property.
function addHours() {
var date1 = new Date();
var dateToMilliseconds = date1.getTime();
var userHours = document.getElementById("userVal").value;
var addedHours = dateToMilliseconds + (3600000*userHours);
var newDate = new Date(addedHours);
document.getElementById("results").textContent = newDate;
}
The final code and output for this example is below:
Code Output:
How many hours do you want to add to the current date and time?
Full Code:
How many hours do you want to add to the current date and time?
<script>
function addHours() {
var date1 = new Date();
var dateToMilliseconds = date1.getTime();
var userHours = document.getElementById("userVal").value;
var addedHours = dateToMilliseconds + (3600000*userHours);
var newDate = new Date(addedHours);
document.getElementById("results").textContent = newDate;
}
</script>
Hopefully this article has been useful in helping you understand how to Add Hours to a Date Using JavaScript.