Flash cards
Review the key moves
What is the main idea behind JavaScript Temporal PlainTime?
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.
___ date = new Temporal.PlainTime(14, 30);Put the learning moves in the order that makes the concept easiest to apply.
The PlainTime Object
The Temporal.PlainTime object is a time object without a date .
It represents an ISO 8601 wall-clock time without a date or time zone.
Example: 10:30:00 .
It is useful for opening hours, alarms, and any time-only values.
The Temporal.PlainTime Object
The Temporal PlainTime object is a time object with no date.
It represents an ISO 8601 wall-clock time without a date or time zone.
Example: 14:30:00 .
Example
const date = new Temporal.PlainTime(14, 30);Create a PlainTime
You can create a PlainTime from a string.
Example
const time = Temporal.PlainTime.from("14:30");You can also create a PlainTime using numeric values.
Example
const time = new Temporal.PlainTime(14, 30);The parameters are: hour, minute, second, millisecond, microsecond, nanosecond.
Get the Current Time
You can get the current local time using Temporal.Now.plainTimeISO() .
Example
const now = Temporal.Now.plainTimeISO();Get Time Parts
You can read the different parts of a PlainTime value.
Example
const time = Temporal.PlainTime.from("14:30:15.123");Add and Subtract PlainTime
Use add() and subtract() to do PlainTime math.
PlainTime is immutable, so the original value is not changed.
Example
const time = Temporal.PlainTime.from("14:30");
const later = time.add({ minutes: 45 });
const earlier = time.subtract({ hours: 2 });If the time passes midnight, it wraps around:
Example
const time = Temporal.PlainTime.from("23:30");
const result = time.add({ minutes: 90 });Calculate PlainTime Differences
Use since() and until() to calculate PlainTime differences.
Both methods return a Temporal.Duration object .
Examples
// Create two PlainTime objects
const start = Temporal.PlainTime.from("09:00");
const end = Temporal.PlainTime.from("17:30");
// Calculate the difference
const diff = start.since(end);JavaScript since() and until()
All temporal date objects have their own since() method :
- plaindate .since( plaindate )
- plaintime .since( plaintime )
- plainyearmonth .since( plainyearmonth )
- plainmonthday .since( plainmonthday )
- plaindatetime .since( plaindatetime )
- zoneddatetime .since( zoneddatetime )
- instant .since( instant )
All temporal objects have their own until() method :
- plaindate .until( plaindate )
- plaintime .until( plaintime )
- plainyearmonth .until( plainyearmonth )
- plainmonthday .until( plainmonthday )
- plaindatetime .until( plaindatetime )
- zoneddatetime .until( zoneddatetime )
- instant .until( instant )
The PlainTime compare() Method
Use Temporal.PlainTime.compare() to compare times.
Example
// Create two PlainTime objects
const a = Temporal.PlainTime.from("08:30");
const b = Temporal.PlainTime.from("14:30");
// Compare the two objects result = Temporal.PlainTime.compare(a, b));The result is
- -1 if the first time is earlier
- 0 if they are equal
- 1 if the first time is later
Do not use =, <, or > when comparing temporal time.
All temporal objects have their own compare() method :
- Temporal.Instant.compare( instant1, instant2 )
- Temporal.PlainDate.compare( plaindate1, plaindate2 )
- Temporal.PlainTime.compare( plaintime1, plaintime2 )
- Temporal.PlainYearMonth.compare( plainyearmonth1, plainyearmonth2 )
- Temporal.PlainMonthDay.compare( plainmonthday1 plainmonthday2 )
- Temporal.PlainDateTime.compare( plaindatetime1,plaindatetime2 )
- Temporal.ZonedDateTime.compare( zoneddtatime1, zoneddtatime2 )
- Temporal.Duration.compare( duration1, duration2 )
The PlainTime equals() Method
Use equals() to check if two times are the same.
Example
// Create two PlainTime objects
const a = Temporal.PlainTime.from("14:30");
const b = Temporal.PlainTime.from("14:30");
// Compare the two objects result = a.equals(b);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.
When to Use PlainTime
- Opening hours (for example: 09:00 to 17:00).
- Alarm clock times.
- Recurring daily schedules.
- Time input fields (without date and time zone).
If you need date, use PlaneDateTime .
Temporal PlainTime Methods
| Constructing | Description |
|---|---|
| from() | Creates a new PlainTime object from an object or a string |
| new | Creates a new PlainTime object from integer parameters |
| Arithmetic | |
| add() | Returns a new PlainTime with a duration added |
| subtract() | Returns a new PlainTime with a duration subtracted |
| round() | Returns a new PlainTime rounded to a given unit |
| Comparing | |
| compare() | Returns -1, 0, or 1 from comparing two times |
| equals() | Returns true if two PlainTime objects are identical |
| since() | Returns the difference since another time |
| until() | Returns the difference until another time |
| Modifying | |
| with() | Returns a new PlainTime with specified fields modified |
| Formatting | |
| toJSON() | Returns an RFC 9557 format string for JSON serialization |
| toLocaleString() | Returns a language-sensitive representation of the time |
| toString() | Returns an RFC 9557 format representation of the time |
| valueOf() | Throws a TypeError Prevents temporals from being converted to primitives |
Temporal.PlainTime Properties
The Temporal.PlainTime object has 6 properties of time information.
| Property | Description |
|---|---|
| hour | The hour as an integer (0-23) |
| microsecond | The microsecond as an integer (0-999) |
| millisecond | The millisecond as an integer (0-999) |
| minute | The minute as an integer (0-59) |
| nanosecond | The nanosecond as an integer (0-999) |
| second | The second as an integer (0-59) |
Display All Properties
const date = new Temporal.PlainTime(14, 30);