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