How to work with dates and times in vanilla JavaScript

Today’s article is adapted from my new Vanilla JS Short’s on working with Dates & Times.
The Date object in JavaScript represents a moment in time. While it has some useful features, it’s also notoriously hard to work with.
Today, we’re going to look at how to create a new Date object, and hopefully make it a bit easier to use. Let’s dig in!
The new Date() constructor You can use the new Date() constructor to create a Date object.


This content originally appeared on Go Make Things and was authored by Go Make Things

Today’s article is adapted from my new Vanilla JS Short’s on working with Dates & Times.

The Date object in JavaScript represents a moment in time. While it has some useful features, it’s also notoriously hard to work with.

Today, we’re going to look at how to create a new Date object, and hopefully make it a bit easier to use. Let’s dig in!

The new Date() constructor

You can use the new Date() constructor to create a Date object.

You can pass in a specific date (and optionally time) in a variety of formats. If you pass in no arguments at all, it will create a Date object for the current instant that it’s run.

You can alternatively pass in a date string as an argument. You don’t need to provide a specific time, but if you do, it needs to use 24-hour format.

The resulting Date object is relative to your current timezone.

// Create a date object for right now
let now = new Date();

// Create a date object for Halloween
let halloween = new Date('October 31, 2022');

// Create a date object for March 21 at 2pm
let springLuncheon = new Date('March 21, 2023 14:00');

For better accuracy across browsers and operating systems, it’s recommended that you use the ISO 8601 date and time format: YYYY-MM-DDTHH:MM:SS.

The first part (YYYY-MM-DD) is the year, month, and date. The T stands for time. The part after it (HH:MM:SS) is the hours, minutes, and seconds (in 24-hour format), and they must be included, or the Date object you get back will not be accurate. Use 00:00:00 for midnight.

// New Year's at midnight
let newYears = new Date('2024-01-01T00:00:00');

// July 4 at noon
let summerParty = new Date('2023-07-04T12:00:00');

You can also create a Date object by passing in a series of arguments: year, monthIndex, day, hours, minutes, seconds, and milliseconds. Only year and monthIndex are required.

The monthIndex argument is a bit confusing, because it starts with January at 0 instead of 1.

// Notice the month index is 9 even though October is the 10th month
let halloween = new Date(2021, 9, 31);

// Christmas morning at 10:30 am, local time
let christmas = new Date(2021, 11, 25, 10, 30);

Unix Timestamps

Under-the-hood, the Date object stores a moment in time as a Unix Timestamp, the number of milliseconds that have elapsed since January 1, 1970.

You can get the Unix Timestamp from a Date object using the Date.getTime() method.

let halloween = new Date('October 31, 2023');

// returns 1698724800000
let timestamp = halloween.getTime();

You can pass a Unix Timestamp into the new Date() constructor to create a Date object.

let earthDay = new Date(1682136000000);

In many programming languages, Unix Timestamps are tracked in seconds rather than milliseconds.

If you’re create a Date object from a timestamp provided by a server or API, it’s important to know if it’s in seconds or milliseconds. If it’s seconds, you’ll need to multiply it by 1000 to convert it to milliseconds.

let timestamp = 1682136000;
let someDate = new Date(timestamp * 1000);

Next: getting values from a Date object

Tomorrow, we’re going to look at how to get values from a Date object. Then, we’ll look at how to format them using the Internationalization API.

Is there a JavaScript or web development topic you'd like to learn more about? Send me an email and let me know.


This content originally appeared on Go Make Things and was authored by Go Make Things


Print Share Comment Cite Upload Translate Updates
APA

Go Make Things | Sciencx (2023-04-12T14:30:00+00:00) How to work with dates and times in vanilla JavaScript. Retrieved from https://www.scien.cx/2023/04/12/how-to-work-with-dates-and-times-in-vanilla-javascript/

MLA
" » How to work with dates and times in vanilla JavaScript." Go Make Things | Sciencx - Wednesday April 12, 2023, https://www.scien.cx/2023/04/12/how-to-work-with-dates-and-times-in-vanilla-javascript/
HARVARD
Go Make Things | Sciencx Wednesday April 12, 2023 » How to work with dates and times in vanilla JavaScript., viewed ,<https://www.scien.cx/2023/04/12/how-to-work-with-dates-and-times-in-vanilla-javascript/>
VANCOUVER
Go Make Things | Sciencx - » How to work with dates and times in vanilla JavaScript. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2023/04/12/how-to-work-with-dates-and-times-in-vanilla-javascript/
CHICAGO
" » How to work with dates and times in vanilla JavaScript." Go Make Things | Sciencx - Accessed . https://www.scien.cx/2023/04/12/how-to-work-with-dates-and-times-in-vanilla-javascript/
IEEE
" » How to work with dates and times in vanilla JavaScript." Go Make Things | Sciencx [Online]. Available: https://www.scien.cx/2023/04/12/how-to-work-with-dates-and-times-in-vanilla-javascript/. [Accessed: ]
rf:citation
» How to work with dates and times in vanilla JavaScript | Go Make Things | Sciencx | https://www.scien.cx/2023/04/12/how-to-work-with-dates-and-times-in-vanilla-javascript/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.