Temporal.PlainDate : propriété month
Disponibilité limitée
Cette fonctionnalité n'est pas Compatible car elle ne fonctionne pas dans certains des navigateurs les plus utilisés.
La propriété d'accesseur month des instances de Temporal.PlainDate retourne un entier positif représentant l'index du mois dans l'année de cette date, basé sur 1. Le premier mois de cette année est 1, et le dernier mois est le monthsInYear. Cela dépend du calendrier.
Notez que contrairement à Date.prototype.getMonth(), l'index est basé sur 1. Si le calendrier a des mois intercalaires, alors le mois avec le même monthCode peut avoir des index de month différents pour différentes années.
Note :
N'utilisez pas cette propriété pour identifier le mois réel, y compris son nom. Utilisez monthCode à cette fin. Utilisez month uniquement pour identifier les mois dans le contexte d'une année, ou pour déterminer leur ordre.
Le mutateur d'accesseur de month est undefined. Vous ne pouvez pas modifier cette propriété directement. Utilisez la méthode with() pour créer un nouvel objet Temporal.PlainDate avec la nouvelle valeur souhaitée.
Exemples
>Utiliser la propriété month
const date = Temporal.PlainDate.from("2021-07-01"); // calendrier ISO 8601
console.log(date.monthCode); // "M07"
console.log(date.month); // 7
const date2 = Temporal.PlainDate.from("2021-05-01[u-ca=chinese]");
console.log(date2.monthCode); // "M03"
console.log(date2.month); // 3 ; c'est le 20 mars dans le calendrier chinois
const date3 = Temporal.PlainDate.from("2023-05-01[u-ca=chinese]");
console.log(date3.monthCode); // "M03"
console.log(date3.month); // 4, bien que ce soit aussi mars (M03) !
const date4 = Temporal.PlainDate.from("2023-04-01[u-ca=chinese]");
console.log(date4.monthCode); // "M02L"
console.log(date4.month); // 3, ce mois est un mois intercalaire, c'est-à-dire un double février
Parcourir tous les mois d'une année
const year = Temporal.PlainDate.from("2021-07-14"); // Une date arbitraire dans l'année
for (
let month = year.with({ month: 1 });
month.year === year.year;
month = month.add({ months: 1 })
) {
console.log(month.month);
}
Sinon, c'est également une méthode sûre (contrairement à l'exemple des jours) :
for (let month = 1; month <= year.monthsInYear; month++) {
const monthDate = year.with({ month });
}
Changer de mois
const date = Temporal.PlainDate.from("2021-07-01");
const newDate = date.with({ month: 2 });
console.log(newDate.toString()); // 2021-02-01
Vous pouvez également utiliser add() ou subtract() pour déplacer un certain nombre de mois à partir de la date actuelle.
const date = Temporal.PlainDate.from("2021-07-01");
const newDate = date.add({ months: 3 });
console.log(newDate.toString()); // 2021-10-01
Par défaut, with() contraint le jour à la plage de valeurs valides. Les deux exemples suivants définiront le mois sur le dernier mois de l'année :
const date = Temporal.PlainDate.from("2021-07-01");
const lastMonth = date.with({ month: date.monthsInYear }); // 2021-12-01
const lastMonth2 = date.with({ month: Number.MAX_VALUE }); // 2021-12-01
Spécifications
| Spécification |
|---|
| Temporal> # sec-get-temporal.plaindate.prototype.month> |
Compatibilité des navigateurs
Voir aussi
- L'objet
Temporal.PlainDate - La méthode
Temporal.PlainDate.prototype.with() - La méthode
Temporal.PlainDate.prototype.add() - La méthode
Temporal.PlainDate.prototype.subtract() - La propriété
Temporal.PlainDate.prototype.year - La propriété
Temporal.PlainDate.prototype.day - La propriété
Temporal.PlainDate.prototype.monthCode - La propriété
Temporal.PlainDate.prototype.daysInMonth - La propriété
Temporal.PlainDate.prototype.monthsInYear