Temporal.ZonedDateTime.prototype.valueOf()
Базовая Ограниченная доступность
Эта функция не является базовой, потому что она не работает в некоторых из наиболее широко используемых браузеров.
Метод valueOf() экземпляров Temporal.ZonedDateTime вызывает TypeError, что предотвращает неявное преобразование в примитивы экземпляров Temporal.ZonedDateTime при использовании в арифметических операциях или операциях сравнения.
Синтаксис
valueOf()
Параметры
Нет.
Возвращаемое значение
Нет.
Исключения
-
TypeError - Вызывается всегда.
Описание
Поскольку и преобразование примитивов, и преобразование чисел вызывают valueOf() перед toString(), если valueOf() отсутствует, то выражение, подобное yearMonth1 > yearMonth2, неявно сравнило бы их как строки, что может привести к неожиданным результатам. Вызывая TypeError, экземпляры Temporal.ZonedDateTime предотвращают такие неявные преобразования. Вам необходимо явно преобразовать их в числа, используя Temporal.ZonedDateTime.prototype.epochNanoseconds, или использовать статический метод Temporal.ZonedDateTime.compare() для их сравнения.
Примеры
Арифметические операции и операции сравнения с Temporal.ZonedDateTime
Все арифметические операции и операции сравнения с экземплярами Temporal.ZonedDateTime должны использовать специализированные методы или явно преобразовывать их в примитивы.
const zdt1 = Temporal.ZonedDateTime.from( "2022-01-01T00:00:00[America/New_York]", ); const zdt2 = Temporal.ZonedDateTime.from( "2022-07-01T00:00:00[America/New_York]", ); zdt1 > zdt2; // TypeError: can't convert ZonedDateTime to primitive type Temporal.ZonedDateTime.compare(zdt1, zdt2); // -1 zdt2 - zdt1; // TypeError: can't convert ZonedDateTime to primitive type zdt2.since(zdt1).toString(); // "PT4343H"
Спецификации
Совместимость с браузерами
| Desktop | Mobile | Server | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on iOS | Samsung Internet | WebView Android | WebView on iOS | Bun | Deno | Node.js | |
valueOf |
144 |
144 |
139 |
128 |
preview |
144 |
139 |
95 |
No |
No |
144 |
No |
1.4.0 |
2.7 |
26.0.0 |
Смотрите также
Temporal.ZonedDateTimeTemporal.ZonedDateTime.prototype.toString()Temporal.ZonedDateTime.prototype.toJSON()Temporal.ZonedDateTime.prototype.toLocaleString()
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Temporal/ZonedDateTime/valueOf