• JavaScript Video Tutorials

JavaScript Date setHours() Method



The JavaScript Date setHours() method is used to set the "hour" component of a Date object. It allows updating the hours component based on a given numeric value, which can be within the range 0 to 23. The return value of this method will be an updated timestamp of the Date object, which reflects the changes made by modifying the hour component.

Additionally, we can modify the minute, seconds, and milliseconds of the date object. It does not return a new Date object but instead updates the existing Date object it was called upon.

Syntax

Following is the syntax of JavaScript Date setHours() method −

setHours(hoursValue, minutesValue, secondsValue, millisecondsValue);

Parameters

This method accepts four parameters. The same is described below −

  • hoursValue − An integer representing the hour (0 to 23).
    • If -1 is provided, it will result in the last hour of the previous day.
    • If 24 is provided, it will result in the first hour of the next day.
  • minutesValue (optional) − An integer representing the minutes (0 to 59). If not provided, minutes will be set to 0.
    • If -1 is provided, it will result in the last minute of the previous hour.
    • If 60 is provided, it will result in the first minute of the next hour.
  • secondsValue(optional) − An integer representing the seconds (0 to 59). If not provided, seconds will be set to 0.
    • If -1 is provided, it will result in the last second of the previous minute.
    • If 60 is provided, it will result in the first second of the next minute.
  • millisecondsValue(optional) − An integer representing the milliseconds (0 to 999). If not provided, milliseconds will be set to 0.
    • If -1 is provided, it will result in the last millisecond of the previous second.
    • If 1000 is provided, it will result in the first millisecond of the next second.

Return Value

This method returns the timestamp (in milliseconds) representing the modified Date object after setting the specified hour, minutes, seconds, and milliseconds.

Example 1

In the following example, we are using the JavaScript Date setHours() method to set the "hours" of the current Date to 20 −

<html>
<body>
<script>
   const currentDate = new Date();
   currentDate.setHours(20); // Set the hours to 20

   document.write("Updated Date:", currentDate);
</script>
</body>
</html>

Output

If we execute the above program, the hours will be set to 20, and the minutes and seconds will be according to the local time.

Example 2

Here, we are setting the "hours" to (10) and "minutes" to (30) −

<html>
<body>
<script>
   const currentDate = new Date();
   currentDate.setHours(10, 30); // Set the hours to 10 and the minutes to 30

   document.write("Updated Date:", currentDate);
</script>
</body>
</html>

Output

After executing, this program returns a timestamp with the provided hours and minutes. The seconds will be according to the local time.

Example 3

Here, we are setting the "hours" to (10), "minutes" to (30), and "seconds" to (45) −

<html>
<body>
<script>
   const currentDate = new Date();
   currentDate.setHours(10, 30, 45); // Set the hours to 10, minutes to 30, and seconds to 45

   document.write("Updated Date:", currentDate);
</script>
</body>
</html>

Output

It returns a timestamp as "Wed Dec 27 2023 10:30:45 GMT+0530 (India Standard Time)".

Example 4

If we provide "-1" for hoursValue, this method will gives the last hour of the previous day −

<html>
<body>
<script>
   const currentDate = new Date('2023-11-20 15:00:00'); //November 20 2023
   currentDate.setHours(-1);

   document.write("Updated Date: ", currentDate);
</script>
</body>
</html>

Output

It returns a timestamp as "Sun Nov 19 2023 23:00:00 GMT+0530 (India Standard Time)".

Example 5

If we provide "60" for minutesValue, this method will gives the first minute of the next hour −

<html>
<body>
<script>
   const currentDate = new Date('2023-11-20 15:00:00'); //November 20 2023
   currentDate.setHours(18, 60);

   document.write("Updated Date: ", currentDate);
</script>
</body>
</html>

Output

It returns a timestamp as "Mon Nov 20 2023 19:00:00 GMT+0530 (India Standard Time)".

Example 6

If we provide "60" for secondsValue, this method will gives the first second of the next minute −

<html>
<body>
<script>
   const currentDate = new Date('2023-11-20 15:00:00'); //November 20 2023
   currentDate.setHours(18, 30, 60);

   document.write("Updated Date: ", currentDate);
</script>
</body>
</html>

Output

It returns a timestamp as "Mon Nov 20 2023 18:31:00 GMT+0530 (India Standard Time)".

Advertisements