The Temporal.PlainMonthDay Object
The Temporal.PlainMonthDay object is a month and day object.
It represents the month and day of an ISO 8601 calendar, without a year or time.
Example: 05-17.
How to Create a PlainMonthDay Object
An PlainMonthDayTime object can be created in several different ways:
| Col 1 | Col 2 |
|---|---|
| From | Code |
| Parameters | new Temporal.PlainMonthDay(param) |
| Object | Temporal.PlainMonthDay.from(object) |
| ISO/RFC 9557 | Temporal.PlainMonthDay.from(RFC9557) |
Create a PlainMonthDay with new
Example
// Create a new PlainMonthDay object
const date = new Temporal.PlainMonthDay(5, 17);
PlainMonthDay from( object )
Example
// Create a new PlainMonthDay object
const date = Temporal.PlainMonthDay.from({month:5, day:17});
PlainMonthDay from( RFC 9557 )
Examples
// Create a new PlainMonthDay object
const date = Temporal.PlainMonthDay.from("05-17");
Note: that year is ignored if used as input
PlainMonthDay equals()
Example
// Create two PlainMonthDay objects
const date1 = Temporal.PlainMonthDay.from("05-17");
const date2 = Temporal.PlainMonthDay.from("07-19");
// Compare
let result = date1.equals(date2);
Most (*) temporal objects have their own equals() method:
- instant.equals(instant)
- plaindate.equals(plaindate)
- plaintime.equals(plaintime)
- plainyearmonth.equals(plainyearmonth)
- plainmonthday.equals(plainmonthday)
- plaindateTime.equals(plaindatetime)
- zoneddateTime.equals(zoneddtatime)
(*) Duration has not.
Note: Learn More: JavaScript Temporal Compare
The with() Method
The with() method returns a new PlainMonthDay object with specified field(s) replaced.
Example
// Create a PlainMonthDay object
const date = Temporal.PlainMonthDay.from("05-17");
// Replace month
const newDate = date.with({ month:12 });
All PlainMonthDay Methods
| Col 1 | Col 2 |
|---|---|
| Constructing | Description |
| from() | Creates a PlainMonthDay object from an object or a string |
| new (constructor) | Creates a PlainMonthDay object from integer parameters |
| Comparing | |
| equals() | Returns true if two PlainMonthDay objects are identical |
| Converting | |
| toPlainDate() | Returns a new PlainDate object |
| with() | Returns a new PlainMonthDay with specified fields modified |
| Formatting | |
| toJSON() | Returns an RFC 9557 format string for JSON serialization |
| toLocaleString() | Returns a language-sensitive representation of the date |
| toString() | Returns an RFC 9557 format string representation of the date |
| valueOf() | TypeError (temporals cannot be converted to primitives) |
All PlainMonthDay Properties
| Col 1 | Col 2 |
|---|---|
| Property | Description |
| calendarID | Calendar system identifier ("iso8601") |
| day | The day as an integer (1-31) |
| monthCode | A calendar-specific string code for the month ("M01") |
Note: The Temporal.PlainMonthDay object does not have a month property. This is because non-ISO calendars (Hebrew, Chinese) can have leap months. The same named month may have a different numerical index (month) each year, making the month integer ambiguous without a year.
Display all PlainMonthDay Properties
const date = new Temporal.PlainMonthDay(5, 17);