Working with Dates & Time in JavaScript
Creating a Date#
const date = new Date();
console.log(date); // 2025-05-09T19:07:23.000Z
const date = new Date('2025-05-09');
console.log(date); // 2025-05-09T19:07:23.000Z
const date = new Date('2025-05-09T19:07:23.000Z');
console.log(date); // 2025-05-09T19:07:23.000Z
Getters & Setters#
Getters#
const date = new Date();
date.getDate(); // 9
date.getMonth(); // 4
date.getFullYear(); // 2025
date.getHours(); // 19
date.getMinutes(); // 7
date.getSeconds(); // 23
date.getMilliseconds(); // 0
// ms since epoch
date.getTime(); // 1746864443000
// Get the difference between UTC time and local time (in minutes)
date.getTimezoneOffset(); // -180 minutes
Setters#
const date = new Date();
date.setFullYear(2026); // 2026
date.setMonth(5); // 5
date.setDate(1); // 1
date.setHours(12); // 12
date.setMinutes(30); // 30
date.setSeconds(0); // 0
date.setMilliseconds(0); // 0
Comparing Dates#
const date1 = new Date('2025-05-09');
const date2 = new Date('2025-05-10');
console.log(date1 < date2); // true
console.log(date1 > date2); // false
console.log(date1 <= date2); // true
console.log(date1 >= date2); // false
Other#
// Get timestamp in milliseconds
const timestamp = new Date().getTime();
console.log(timestamp); // 1746864443000
Formatting Dates#
const d = new Date();
d.toISOString(); // '2025-05-09T07:30:00.000Z'
d.toDateString(); // 'Fri May 09 2025'
d.toTimeString(); // '10:30:00 GMT+0000 (UTC)'
d.toUTCString(); // 'Fri, 09 May 2025 07:30:00 GMT'
d.toLocaleDateString(); // Locale-based format
d.toLocaleTimeString(); // Locale-based time
Date Calculations#
Add Days#
const date = new Date();
const daysToAdd = 5;
date.setDate(date.getDate() + daysToAdd);
console.log(date); // 2025-05-14T19:07:23.000Z
Add Hours#
const date = new Date();
const hoursToAdd = 5;
date.setHours(date.getHours() + hoursToAdd);
console.log(date); // 2025-05-09T24:07:23.000Z
Calculate Difference in Days#
To calculate the difference in days between two dates, we can subtract the first date from the second date in milliseconds and then divide by the number of milliseconds in a day.
// Calculate difference between dates (in milliseconds)
const date1 = new Date('2025-05-09T12:00:00Z');
const date2 = new Date('2025-05-10T12:00:00Z');
const diffMs = date2 - date1; // 86400000 (milliseconds in a day)
const diffDays = diffMs / (1000 * 60 * 60 * 24); // 1 (day)
console.log(diffDays); // 1
Calculate Difference in Hours#
// Calculate difference between dates (in milliseconds)
const date1 = new Date('2025-05-09T12:00:00Z');
const date2 = new Date('2025-05-10T12:00:00Z');
const diffMs = date2 - date1; // 86400000 (milliseconds in a day)
const diffHours = diffMs / (1000 * 60 * 60); // 24 (hours)
console.log(diffHours); // 24