bugl
bugl
HomeLearnPatternsPathsSearch
HomeLearnPatternsPathsSearch

Loading lesson path

Learn/JavaScript/Objects, Classes, and Advanced Patterns
JavaScript•Objects, Classes, and Advanced Patterns

JS Temporal Differences

Flash cards

Review the key moves

1/4
Core idea

What is the main idea behind JS Temporal Differences?

Lesson checks

Practice each idea before moving on

Short Mimo-style checks built from this lesson's code, terms, and sequence.

1Quick choice

Which statement best captures the main point of this lesson?

2Order

Put the learning moves in the order that makes the concept easiest to apply.

JavaScript Temporal until()
JavaScript Temporal since()
JavaScript since() and until()

JavaScript since() and until()

The since() method calculates the since duration between two dates.

The until() method calculates the until duration between two dates.

The since() and until() are effectivly the inverse of each other.

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 )

JavaScript Temporal since()

The since() method calculates the duration between two temporal dates.

Syntax

t1
.since(
t2, options
)

Meaning

At time t1 , how much time has passed since time t2 ?

Example

const start = Temporal.PlainDate.from("2026-05-01");
const end = Temporal.PlainDate.from("2026-05-17");
const duration = start.since(end);

The since() method returns a Temporal.Duration Object representing the elapsed time.

The duration is positive if the "other" date is in the past .

The duration is negative if the "other" date is in the future .

JavaScript Temporal until()

The until() method calculates the duration between two temporal dates.

Syntax

t1
.until(
t2, options
)

Meaning

At time t1 , how much time is it until t2 ?

Example

const start = Temporal.PlainDate.from("2026-05-01");
const end = Temporal.PlainDate.from("2026-05-17");
const duration = start.until(end);

Temporal since() vs until()

The methods are opposites.

MethodMeaning
a.since(b)time from b → a
a.until(b)time from a → b

Example

const start = Temporal.PlainDate.from("2026-05-01");
const end = Temporal.PlainDate.from("2026-05-17");
const duration1 = start.since(end);
const duration2 = start.until(end);

Think

  • since = past (since yesterday)
  • until = future (until tomorrow)

The Options Parameters

Example

const wedding = Temporal.PlainDate.from("2000-05-17");
const today = Temporal.Now.plainDateISO();
const duration = today.since(wedding);

The since() method returns the total number of days, but you can use the largestUnit option to break it down into years and months:

Example

const wedding = Temporal.PlainDate.from("2000-05-17");
const today = Temporal.Now.plainDateISO();
const duration = today.since(wedding, {largestUnit:'years'});

PlainTime since()

Example: Plain Time

const start = Temporal.PlainTime.from("09:00");
const end = Temporal.PlainTime.from("17:30");
const duration = end.since(start);

ZonedDateTime since()

The since() method calculates the duration between two temporal dates.

Syntax

t1
.since(
t2, options
)

Example: ZonedDateTime

const start = Temporal.ZonedDateTime.from( "2026-02-17T09:00:00+01:00[Europe/Oslo]");
const end = Temporal.ZonedDateTime.from( "2026-02-17T17:30:00+01:00[Europe/Oslo]");
const duration = end.since(start);

Previous

JavaScript Object Iterations

Next

JavaScript Object Accessors