JavaScript Date Set Methods
Learn how to modify date and time values
✏️ What are Date Set Methods?
Date Set methods allow you to modify specific parts of a date object like year, month, day, hours, minutes, and seconds.
// Create a date and modify it
let date = new Date("2024-03-15");
date.setFullYear(2025);
console.log(date); // 2025-03-15
Common Set Methods
Date Parts
Set year, month, and day
let date = new Date();
date.setFullYear(2025);
date.setMonth(11); // December (0-based)
date.setDate(25); // Christmas!
Time Parts
Set hours, minutes, seconds
let date = new Date();
date.setHours(14);
date.setMinutes(30);
date.setSeconds(0);
Milliseconds
Set precise time values
let date = new Date();
date.setTime(1640995200000); // Set to specific timestamp
date.setMilliseconds(500); // Set milliseconds
UTC Methods
Set UTC time values
let date = new Date();
date.setUTCHours(12);
date.setUTCMinutes(0);
date.setUTCSeconds(0);
🔹 Basic Set Methods
Here are the most commonly used set methods:
let date = new Date("2024-01-01 00:00:00");
console.log("Original:", date.toString());
// Set date components
date.setFullYear(2025);
date.setMonth(2); // March (0-based)
date.setDate(15);
// Set time components
date.setHours(14);
date.setMinutes(30);
date.setSeconds(45);
date.setMilliseconds(500);
console.log("Modified:", date.toString());
Output:
Original: Mon Jan 01 2024 00:00:00 GMT-0500 (EST)
Modified: Sat Mar 15 2025 14:30:45 GMT-0500 (EST)
🔹 Setting Multiple Values at Once
Some set methods can accept multiple parameters:
let date = new Date();
// setFullYear(year, month, day)
date.setFullYear(2024, 11, 25); // December 25, 2024
// setHours(hours, minutes, seconds, milliseconds)
date.setHours(9, 30, 0, 0); // 9:30:00.000 AM
// setMonth(month, day)
date.setMonth(0, 1); // January 1st
console.log("New Year:", date.toString());
Output:
New Year: Wed Jan 01 2025 09:30:00 GMT-0500 (EST)
🔹 Date Arithmetic with Set Methods
Use set methods to add or subtract time periods:
let date = new Date("2024-03-15");
// Add 30 days
date.setDate(date.getDate() + 30);
console.log("30 days later:", date.toDateString());
// Add 3 months
date.setMonth(date.getMonth() + 3);
console.log("3 months later:", date.toDateString());
// Add 1 year
date.setFullYear(date.getFullYear() + 1);
console.log("1 year later:", date.toDateString());
// Subtract 2 hours
date.setHours(date.getHours() - 2);
console.log("2 hours earlier:", date.toString());
Output:
30 days later: Sun Apr 14 2024
3 months later: Tue Jul 14 2024
1 year later: Mon Jul 14 2025
2 hours earlier: Mon Jul 14 2025 22:00:00 GMT-0500 (EST)
🔹 UTC Set Methods
Set UTC (Universal Time) values instead of local time:
let date = new Date();
// Set local time
date.setHours(12, 0, 0, 0);
console.log("Local time:", date.toString());
// Set UTC time
date.setUTCHours(12, 0, 0, 0);
console.log("UTC time:", date.toString());
// All UTC set methods
date.setUTCFullYear(2024);
date.setUTCMonth(11); // December
date.setUTCDate(25); // Christmas
date.setUTCHours(0); // Midnight UTC
date.setUTCMinutes(0);
date.setUTCSeconds(0);
console.log("Christmas UTC:", date.toString());
Output:
Local time: Fri Mar 15 2024 12:00:00 GMT-0500 (EST)
UTC time: Fri Mar 15 2024 07:00:00 GMT-0500 (EST)
Christmas UTC: Tue Dec 24 2024 19:00:00 GMT-0500 (EST)
🔹 Practical Examples
Real-world examples using set methods:
// Set to beginning of day
function setToStartOfDay(date) {
date.setHours(0, 0, 0, 0);
return date;
}
let today = new Date();
console.log("Start of day:", setToStartOfDay(new Date(today)));
// Set to end of day
function setToEndOfDay(date) {
date.setHours(23, 59, 59, 999);
return date;
}
console.log("End of day:", setToEndOfDay(new Date(today)));
// Set to first day of month
function setToFirstDayOfMonth(date) {
date.setDate(1);
return date;
}
console.log("First of month:", setToFirstDayOfMonth(new Date(today)));
// Set to last day of month
function setToLastDayOfMonth(date) {
date.setMonth(date.getMonth() + 1, 0); // Day 0 = last day of previous month
return date;
}
console.log("Last of month:", setToLastDayOfMonth(new Date(today)));
// Create a specific date and time
function createDateTime(year, month, day, hour, minute) {
let date = new Date();
date.setFullYear(year);
date.setMonth(month - 1); // Convert to 0-based
date.setDate(day);
date.setHours(hour, minute, 0, 0);
return date;
}
let meeting = createDateTime(2024, 12, 25, 14, 30);
console.log("Meeting time:", meeting.toString());
Output:
Start of day: Fri Mar 15 2024 00:00:00 GMT-0500 (EST)
End of day: Fri Mar 15 2024 23:59:59 GMT-0500 (EST)
First of month: Fri Mar 01 2024 14:30:25 GMT-0500 (EST)
Last of month: Sun Mar 31 2024 14:30:25 GMT-0500 (EST)
Meeting time: Wed Dec 25 2024 14:30:00 GMT-0500 (EST)
🔹 Important Notes
Remember:
- Months are 0-based: January = 0, December = 11
- Set methods modify the original date object
- Invalid dates auto-correct: setDate(32) becomes next month's 1st or 2nd
- Set methods return milliseconds since January 1, 1970 UTC
- Use UTC methods when working with different timezones