Altcademy - a Forbes magazine logo Best Coding Bootcamp 2023

What are Dates in JavaScript?

In this blog post, we're going to explore Dates in JavaScript, a fascinating and essential part of any programming language. As a programmer, you'll often find yourself working with dates and times, whether you're building a simple calendar application, a time tracking tool, or just displaying the current date on your website. So, let's dive in and discover the world of Dates in JavaScript!

What is a Date?

A date is a specific day in time that can be represented in various ways, such as "December 25, 2021" or "2021-12-25". In JavaScript, dates are objects that allow you to store and manipulate date and time information. You can think of a Date object as a container that holds information about a specific point in time. Just like a real-life calendar, it has information about the year, month, day, hour, minute, and even the second and millisecond.

Creating a Date Object

To create a Date object in JavaScript, you can use the Date constructor. Here's how you can create a new Date object representing the current date and time:

const currentDate = new Date();
console.log(currentDate);

The new Date() constructor, without any arguments, returns the current date and time. When you run this code, you'll see something like this:

2021-12-25T10:25:36.123Z

This is the standard format used to represent dates in JavaScript, known as the ISO 8601 format. The "T" in the middle separates the date and the time, and the "Z" at the end stands for "zero offset," which means the time is in the UTC (Coordinated Universal Time) timezone.

You can also create a Date object for a specific date and time by providing the year, month, day, hours, minutes, seconds, and milliseconds as arguments. Note that the month is zero-based (January is 0, and December is 11):

const specificDate = new Date(2021, 11, 25, 0, 0, 0);
console.log(specificDate);

This code creates a Date object for December 25, 2021, at midnight (00:00:00) in the local time zone and displays it like this:

2021-12-25T00:00:00.000Z

Accessing Date Components

Now that we know how to create a Date object let's explore how to access various components of a date, such as the year, month, day, hours, minutes, seconds, and milliseconds.

JavaScript provides several methods to access these components. Here's a list of the most commonly used methods:

  • getFullYear(): Returns the year (4-digit) of the specified date
  • getMonth(): Returns the month (0-11) of the specified date
  • getDate(): Returns the day of the month (1-31) of the specified date
  • getDay(): Returns the day of the week (0-6) of the specified date, where 0 is Sunday and 6 is Saturday
  • getHours(): Returns the hours (0-23) of the specified date
  • getMinutes(): Returns the minutes (0-59) of the specified date
  • getSeconds(): Returns the seconds (0-59) of the specified date
  • getMilliseconds(): Returns the milliseconds (0-999) of the specified date

Here's an example of how to use these methods:

const currentDate = new Date();

console.log('Year:', currentDate.getFullYear());
console.log('Month:', currentDate.getMonth() + 1);
console.log('Day of the month:', currentDate.getDate());
console.log('Day of the week:', currentDate.getDay());
console.log('Hours:', currentDate.getHours());
console.log('Minutes:', currentDate.getMinutes());
console.log('Seconds:', currentDate.getSeconds());
console.log('Milliseconds:', currentDate.getMilliseconds());

This code will output something like this:

Year: 2021
Month: 12
Day of the month: 25
Day of the week: 6
Hours: 10
Minutes: 25
Seconds: 36
Milliseconds: 123

You might have noticed that we added + 1 to the month value. That's because, as mentioned earlier, the month is zero-based, so we need to add 1 to get the correct month number.

Modifying Date Components

In addition to accessing date components, you can also modify them using various methods provided by the Date object. These methods allow you to set the year, month, day, hours, minutes, seconds, and milliseconds of a date.

Here's a list of the most commonly used methods for modifying dates:

  • setFullYear(year): Sets the year (4-digit) of the specified date
  • setMonth(month): Sets the month (0-11) of the specified date
  • setDate(day): Sets the day of the month (1-31) of the specified date
  • setHours(hours): Sets the hours (0-23) of the specified date
  • setMinutes(minutes): Sets the minutes (0-59) of the specified date
  • setSeconds(seconds): Sets the seconds (0-59) of the specified date
  • setMilliseconds(milliseconds): Sets the milliseconds (0-999) of the specified date

Here's an example of how to use these methods:

const currentDate = new Date();

currentDate.setFullYear(2022);
currentDate.setMonth(0);
currentDate.setDate(1);
currentDate.setHours(0);
currentDate.setMinutes(0);
currentDate.setSeconds(0);
currentDate.setMilliseconds(0);

console.log(currentDate);

This code will output something like this:

2022-01-01T00:00:00.000Z

We've just modified the currentDate object to represent January 1, 2022, at midnight (00:00:00) in the local time zone.

Comparing Dates