Flash cards
Review the key moves
What is the main idea behind JavaScript PlainMonthDay?
Lesson checks
Practice each idea before moving on
Short Mimo-style checks built from this lesson's code, terms, and sequence.
Which statement best captures the main point of this lesson?
Complete the missing token from the example code.
// ___ a new PlainMonthDay objectPut the learning moves in the order that makes the concept easiest to apply.
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:
| 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.
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
| 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
| 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") |
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);