DEV Community

Cover image for JavaScript Date prototype Property
Lakmal Asela
Lakmal Asela

Posted on

JavaScript Date prototype Property

The Date.prototype object in JavaScript is used to extend or override the behavior of Date instances. This provides a means of adding custom methods and properties to all Date objects.

Extending Date with Custom Methods

You can add custom methods to Date.prototype to make them available on all instances of Date. For example, you may want to add a method that returns the number of total days.

Date.prototype.daysFromStartOfYear = function() {
const startOfYear = new Date(this.getFullYear(), 0, 1); // January 1st of the current year
const oneDay = 24 * 60 * 60 * 1000; // Milliseconds in one day
const differenceInTime = this.getTime() - startOfYear.getTime();
return Math.floor(differenceInTime / oneDay) + 1; // Add 1 to include the start day
}

Explanation

  • Date.prototype.daysFromStartOfYear: Defines a new method daysFromStartOfYear on the Date prototype, making it available to all Date instances.

  • new Date(this.getFullYear(), 0, 1): Creates a Date object for January 1st of the current year (this.getFullYear()).

  • this.getTime() - startOfYear.getTime(): Calculates the difference in milliseconds between the current date (this) and January 1st of the year.

  • Math.floor(differenceInTime / oneDay) + 1: Converts milliseconds to days. Adding 1 ensures that January 1st is counted as day 1.

This solution won't modify the Date.prototype object, and in some cases, may be useful when you need to apply the method and not affect all instances of Date

Heroku

Build apps, not infrastructure.

Dealing with servers, hardware, and infrastructure can take up your valuable time. Discover the benefits of Heroku, the PaaS of choice for developers since 2007.

Visit Site

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs