Temporal.PlainDate : méthode statique from()
Disponibilité limitée
Cette fonctionnalité n'est pas Compatible car elle ne fonctionne pas dans certains des navigateurs les plus utilisés.
La méthode statique Temporal.PlainDate.from() crée un nouvel objet Temporal.PlainDate à partir d'un autre objet Temporal.PlainDate, d'un objet avec des propriétés de date ou d'une chaîne RFC 9557.
Syntaxe
Temporal.PlainDate.from(info)
Temporal.PlainDate.from(info, options)
Paramètres
info-
L'un des éléments suivants :
-
Une instance de
Temporal.PlainDate, qui crée une copie de l'instance. -
Une instance de
Temporal.PlainDateTime, qui fournit la date du calendrier de la même manière queTemporal.PlainDateTime.prototype.toPlainDate(). -
Une instance de
Temporal.ZonedDateTime, qui fournit la date du calendrier de la même manière queTemporal.ZonedDateTime.prototype.toPlainDate(). -
Une chaîne de caractères RFC 9557 contenant une date et éventuellement un calendrier.
-
Un objet contenant les propriétés suivantes (dans l'ordre dans lequel elles sont récupérées et validées) :
calendarFacultatif-
Une chaîne de caractères correspondant à la propriété
calendarId. VoirIntl.supportedValuesOf()pour une liste des types de calendriers couramment pris en charge. Par défaut,"iso8601". Toutes les autres propriétés sont interprétées dans ce système de calendrier (contrairement au constructeurTemporal.PlainDate(), qui interprète les valeurs dans le système de calendrier ISO). day-
Un entier correspondant à la propriété
day. Doit être positif quel que soit l'optionoverflow. eraeteraYear-
Une chaîne de caractères et un entier correspondant aux propriétés
eraeteraYear. Ne sont utilisés que si le système de calendrier a des ères.eraeteraYeardoivent être fournis simultanément. Au moins l'un deseraYear(avecera) ouyeardoit être fourni. Siera,eraYearetyearsont tous fournis, ils doivent être cohérents. month-
Correspond à la propriété
month. Doit être positif quel que soit l'optionoverflow. Au moins l'un desmonthoumonthCodedoit être fourni. Si les deux sont fournis, ils doivent être cohérents. monthCode-
Correspond à la propriété
monthCode. Au moins l'un desmonthoumonthCodedoit être fourni. Si les deux sont fournis, ils doivent être cohérents. year-
Correspond à la propriété
year. Au moins l'un deseraYear(avecera) ouyeardoit être fourni. Siera,eraYearetyearsont tous fournis, ils doivent être cohérents.
L'information doit définir explicitement une année (comme
yearoueraeteraYear), un mois (commemonthoumonthCode) et un jour.
-
optionsFacultatif-
Un objet contenant la propriété suivante :
overflowFacultatif-
Une chaîne de caractères définissant le comportement lorsque un composant de date est hors de portée (lors de l'utilisation de l'objet
info). Les valeurs possibles sont :"constrain"(par défaut)-
Le composant de date est contraint à la plage valide.
"reject"-
Un objet
RangeErrorest levé si le composant de date est hors de portée.
Valeur de retour
Un nouvel objet Temporal.PlainDate, représentant la date définie par info dans le calendrier défini.
Exceptions
TypeError-
Levé dans l'un des cas suivants :
infon'est pas un objet ou une chaîne de caractères.optionsn'est pas un objet ouundefined.- Les propriétés fournies sont insuffisantes pour déterminer de manière univoque une date. Vous devez généralement fournir une
year(oueraeteraYear), unmonth(oumonthCode) et unday.
RangeError-
Levé dans l'un des cas suivants :
- Les propriétés fournies qui définissent le même composant sont incohérentes.
- Les propriétés non numériques fournies ne sont pas valides ; par exemple, si
monthCoden'est jamais un code de mois valide dans ce calendrier. - Les propriétés numériques fournies sont hors de portée, et
options.overflowest défini sur"reject". - Les informations ne sont pas dans la plage représentable, qui est ±(108 + 1) jours, soit environ ±273 972,6 ans, à partir de l'époque Unix.
Exemples
>Créer un objet PlainDate depuis un objet
// Année, mois et jour
const d1 = Temporal.PlainDate.from({ year: 2021, month: 7, day: 1 });
console.log(d1.toString()); // "2021-07-01"
// Année, code du mois et jour
const d2 = Temporal.PlainDate.from({ year: 2021, monthCode: "M07", day: 1 });
console.log(d2.toString()); // "2021-07-01"
// Année, mois, jour dans un calendrier différent
const d3 = Temporal.PlainDate.from({
year: 2021,
month: 7,
day: 1,
calendar: "hebrew",
});
// Note : lorsque vous construisez une date avec un objet, les composants
// de la date sont dans *ce* calendrier, et non dans le calendrier ISO.
// Cependant, toString() affiche toujours la date dans le calendrier ISO.
// Par exemple, l'année "2021" dans le calendrier hébreu est en réalité
// 1740 avant notre ère dans le calendrier ISO.
console.log(d3.toString()); // "-001739-03-07[u-ca=hebrew]"
// Ère, année de l'ère, mois et jour
const d4 = Temporal.PlainDate.from({
era: "meiji",
eraYear: 4,
month: 7,
day: 1,
calendar: "japanese",
});
console.log(d4.toString()); // "1871-07-01[u-ca=japanese]"
Contrôler le comportement de dépassement
Par défaut, les valeurs hors de portée sont limitées à la plage valide :
const d1 = Temporal.PlainDate.from({ year: 2021, month: 13, day: 1 });
console.log(d1.toString()); // "2021-12-01"
const d2 = Temporal.PlainDate.from({ year: 2021, month: 2, day: 29 });
console.log(d2.toString()); // "2021-02-28"
const d3 = Temporal.PlainDate.from("2021-02-29");
console.log(d3.toString()); // "2021-02-28"
Vous pouvez changer ce comportement pour lever une erreur à la place :
const d3 = Temporal.PlainDate.from(
{ year: 2021, month: 13, day: 1 },
{ overflow: "reject" },
);
// RangeError: date value "month" not in 1..12: 13
Créer un objet PlainDate depuis une chaîne de caractères
const d = Temporal.PlainDate.from("2021-07-01");
console.log(d.toLocaleString("en-US", { dateStyle: "full" }));
// Thursday, July 1, 2021
// Fournir un calendrier
const d2 = Temporal.PlainDate.from("2021-07-01[u-ca=japanese]");
console.log(
d2.toLocaleString("ja-JP", { calendar: "japanese", dateStyle: "full" }),
);
// 令和3年7月1日木曜日
// Fournir une heure et un décalage (ignorés)
const d3 = Temporal.PlainDate.from("2021-07-01T00:00+08:00");
console.log(d3.toString()); // "2021-07-01"
Créer un objet PlainDate depuis une autre instance de Temporal
const dt = Temporal.PlainDateTime.from("2021-07-01T12:00");
const d = Temporal.PlainDate.from(dt);
console.log(d.toString()); // "2021-07-01"
const zdt = Temporal.ZonedDateTime.from(
"2021-07-01T00:00+08:00[Asia/Shanghai]",
);
const d2 = Temporal.PlainDate.from(zdt);
console.log(d2.toString()); // "2021-07-01"
const d3 = Temporal.PlainDate.from(d);
console.log(d3.toString()); // "2021-07-01"
Spécifications
| Spécification |
|---|
| Temporal> # sec-temporal.plaindate.from> |
Compatibilité des navigateurs
Voir aussi
- L'objet
Temporal.PlainDate - Le constructeur
Temporal.PlainDate() - La méthode
Temporal.PlainDate.prototype.with()