JavaScript Date Objects

JavaScript Date Objects are used to represent and manipulate dates and times. They are created using the new Date() constructor, which takes a variety of arguments to specify the date and time.

Creating a Date Object

There are four ways to create a Date Object:

With no arguments: This will create a Date Object representing the current date and time.

With a single number argument: This will create a Date Object representing the specified number of milliseconds since the Unix epoch (January 1, 1970 at midnight UTC).

With a date string argument: This will create a Date Object representing the date and time specified in the string. The string must be in a format that JavaScript can understand, such as YYYY-MM-DD or MM/DD/YYYY.

With seven number arguments: This will create a Date Object representing the date and time specified by the seven arguments, which are the year, month, day, hour, minute, second, and millisecond.

Examples:

// Create a Date Object representing the current date and time.
const now = new Date();
// Create a Date Object representing the number of milliseconds since the Unix epoch.
const epoch = new Date(0);
// Create a Date Object representing the date and time specified in the string.
const christmas = new Date('2023-12-25');
// Create a Date Object representing the date and time specified by the seven arguments.
const birthday = new Date(1995, 11, 17, 12, 0, 0, 0);

Getting and Setting Date and Time Components

Date Objects have a number of built-in methods for getting and setting the different components of a date and time, such as the year, month, day, hour, minute, second, and millisecond.

For example, to get the current year, you would use the getFullYear() method. To set the current year to 2024, you would use the setFullYear() method.

Examples:

// Get the current year.
const year = now.getFullYear();
// Set the current year to 2024.
now.setFullYear(2024);
// Get the current month.
const month = now.getMonth();
// Set the current month to December.
now.setMonth(11);
// Get the current day of the month.
const day = now.getDate();
// Set the current day of the month to 25.
now.setDate(25);
// Get the current hour.
const hour = now.getHours();
// Set the current hour to 12.
now.setHours(12);
// Get the current minute.
const minute = now.getMinutes();
// Set the current minute to 0.
now.setMinutes(0);
// Get the current second.
const second = now.getSeconds();
// Set the current second to 0.
now.setSeconds(0);
// Get the current milliseconds.
const milliseconds = now.getMilliseconds();
// Set the current milliseconds to 0.
now.setMilliseconds(0);

Formatting Dates and Times

Date Objects also have a number of built-in methods for formatting dates and times in different ways. For example, you can use the toLocaleDateString() method to format a date in the user’s locale. You can use the toLocaleTimeString() method to format a time in the user’s locale.

Examples:

// Format the current date in the user’s locale.
const dateString = now.toLocaleDateString();
// Format the current time in the user’s locale.
const timeString = now.toLocaleTimeString();

Date Arithmetic

Date Objects can also be used to perform date arithmetic. For example, you can use the setDate() method to add or subtract days from a date. You can use the setHours() method to add or subtract hours from a time.

Examples:

// Add 1 day to the current date.
now.setDate(now.getDate() + 1);
// Subtract 1 hour from the current time.
now.setHours(now.getHours() - 1);

Conclusion

JavaScript Date Objects are a powerful tool for working with dates and times. They can be used to create, format, and manipulate dates and times in a variety of ways.