DEV Community

Nwafor Onyebuchi
Nwafor Onyebuchi

Posted on

JavaScript Date Object Cheatsheet

The Date object in JavaScript is used to work with dates and times. It provides methods to create, manipulate, and format date and time values.


Creating Dates

You can create a Date object in multiple ways:

  1. Current Date and Time:
   const now = new Date();
   console.log(now); // Current date and time
Enter fullscreen mode Exit fullscreen mode
  1. Specific Date:
   const specificDate = new Date(2024, 10, 21); // Year, Month (0-based), Day
   console.log(specificDate); // Thu Nov 21 2024
Enter fullscreen mode Exit fullscreen mode
  1. From a String:
   const fromString = new Date("2024-11-21T10:00:00");
   console.log(fromString); // Thu Nov 21 2024 10:00:00 GMT
Enter fullscreen mode Exit fullscreen mode
  1. From Timestamps (milliseconds since Unix epoch):
   const fromTimestamp = new Date(1732231200000);
   console.log(fromTimestamp); // Thu Nov 21 2024 10:00:00 GMT
Enter fullscreen mode Exit fullscreen mode

Common Methods

Getting Date and Time

Method Description Example
getFullYear() Returns the year date.getFullYear() -> 2024
getMonth() Returns the month (0-11) date.getMonth() -> 10 (November)
getDate() Returns the day of the month (1-31) date.getDate() -> 21
getDay() Returns the weekday (0-6, Sun=0) date.getDay() -> 4 (Thursday)
getHours() Returns the hour (0-23) date.getHours() -> 10
getMinutes() Returns the minutes (0-59) date.getMinutes() -> 0
getSeconds() Returns the seconds (0-59) date.getSeconds() -> 0
getTime() Returns timestamp in milliseconds date.getTime() -> 1732231200000

Setting Date and Time

Method Description Example
setFullYear(year) Sets the year date.setFullYear(2025)
setMonth(month) Sets the month (0-11) date.setMonth(0) -> January
setDate(day) Sets the day of the month date.setDate(1) -> First day of the month
setHours(hour) Sets the hour (0-23) date.setHours(12)
setMinutes(minutes) Sets the minutes (0-59) date.setMinutes(30)
setSeconds(seconds) Sets the seconds (0-59) date.setSeconds(45)

Formatting Dates

Method Description Example
toDateString() Returns date as a human-readable string date.toDateString() -> "Thu Nov 21 2024"
toISOString() Returns date in ISO format date.toISOString() -> "2024-11-21T10:00:00.000Z"
toLocaleDateString() Returns date in localized format date.toLocaleDateString() -> "11/21/2024"
toLocaleTimeString() Returns time in localized format date.toLocaleTimeString() -> "10:00:00 AM"

Common Use Cases

  1. Calculate Days Between Two Dates:
   const startDate = new Date("2024-11-01");
   const endDate = new Date("2024-11-21");
   const diffInTime = endDate - startDate; // Difference in milliseconds
   const diffInDays = diffInTime / (1000 * 60 * 60 * 24); // Convert to days
   console.log(diffInDays); // 20
Enter fullscreen mode Exit fullscreen mode
  1. Countdown Timer:
   const targetDate = new Date("2024-12-31T23:59:59");
   setInterval(() => {
       const now = new Date();
       const timeLeft = targetDate - now; // Milliseconds left
       const days = Math.floor(timeLeft / (1000 * 60 * 60 * 24));
       const hours = Math.floor((timeLeft / (1000 * 60 * 60)) % 24);
       const minutes = Math.floor((timeLeft / (1000 * 60)) % 60);
       const seconds = Math.floor((timeLeft / 1000) % 60);
       console.log(`${days}d ${hours}h ${minutes}m ${seconds}s`);
   }, 1000);
Enter fullscreen mode Exit fullscreen mode
  1. Format Current Date:
   const now = new Date();
   const formatted = `${now.getFullYear()}-${now.getMonth() + 1}-${now.getDate()}`;
   console.log(formatted); // "2024-11-21"
Enter fullscreen mode Exit fullscreen mode
  1. Find the Day of the Week:
   const date = new Date("2024-11-21");
   const days = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
   console.log(days[date.getDay()]); // "Thursday"
Enter fullscreen mode Exit fullscreen mode
  1. Check Leap Year:
   const isLeapYear = (year) => {
       return (year % 4 === 0 && year % 100 !== 0) || (year % 400 === 0);
   };
   console.log(isLeapYear(2024)); // true
Enter fullscreen mode Exit fullscreen mode
  1. Add/Subtract Days:
   const addDays = (date, days) => {
       const result = new Date(date);
       result.setDate(result.getDate() + days);
       return result;
   };
   console.log(addDays(new Date(), 10)); // Adds 10 days to the current date
Enter fullscreen mode Exit fullscreen mode

Pro Tips

  1. Use Date.now() to get the current timestamp directly without creating a Date object:
   console.log(Date.now()); // Timestamp in milliseconds
Enter fullscreen mode Exit fullscreen mode
  1. Be mindful of time zones when working with dates across regions. Use libraries like Moment.js or Day.js for advanced handling.

  2. To avoid month off-by-one errors, remember that months are 0-indexed (0 = January, 11 = December).


Top comments (0)