Temporal PlainDate
Temporal.PlainDate obyekti
Temporal.PlainDate obyekti vaqtsiz kalendar sanasini ifodalaydi.
Temporal.PlainDate odatda ISO 8601 formatida bo‘ladi (2026-05-01).
Tug‘ilgan kunlar va bayramlar kabi vaqt mintaqasidan qat’iy nazar bir xil sanalar uchun DateTime obyektlaridan foydalanish osonroq va solishtirish xavfsizroq.
PlainDate obyektini qanday yaratish
PlainDateTime obyekti bir necha xil usullarda yaratilishi mumkin:
| Nimadan | Kod |
|---|---|
| Constructor (new) | new Temporal.PlainDate() |
| ISO String | Temporal.PlainDate.from() |
| Now (current time) | Temporal.Now.plainDateISO() |
new yordamida PlainDate yaratish
Yangi konstruktor yordamida PlainDate obyektini yaratishingiz mumkin.
Konstruktor yil, oy va kun parametrlarini qabul qiladi.
Misol
// Create a PlainDate object
const date = new Temporal.PlainDate(2026, 5, 17);
O‘zingiz sinab ko‘ring »
The Temporal.PlainDate() method above:
- Konstruktor chaqiruvidan foydalanadi
- Expects numeric arguments (year, month, day).
- 2026-05-17 kabi vaqtsiz kalendar sanasini qaytaradi.
Unlike JavaScript Date, Temporal months start at 1.
Stringdan PlainDate yaratish
PlainDate obyektini ISO 8601 / RFC 9557 stringidan yaratishingiz mumkin.
Misol
// Create a PlainDate object
const date = Temporal.PlainDate.from("2026-05-17");
O‘zingiz sinab ko‘ring »
Yuqoridagi misolda:
- Kirish qiymati ISO 8601 qoidalari bo‘yicha tahlil qilinadi (parse)
- ISO 8601 accepts strings like "2026-05-01"
Parsing means validation pluss automatic conversion.
Obyektdan PlainDate yaratish
Obyektdan PlainDate obyektini yaratishingiz mumkin.
Misol
// Create a PlainDate object
const date = Temporal.PlainDate.from({year:2026, month:5, day:1});
O‘zingiz sinab ko‘ring »
Yuqoridagi misoldan siz from() usuli obyekt literallarini ham, PlainDate obyektlarini ham qabul qilishi mumkin, deb hisoblashingiz mumkin.
Misol
// Create a PlainDate object
const d1 = Temporal.PlainDate.from({year:2026, month:5, day:1});
// Create another PlainDate object
const d2 = Temporal.PlainDate.from(d1);
O‘zingiz sinab ko‘ring »
Now’dan PlainDate obyektini yaratish
Temporal.Now obyektida joriy sanani olish usuli mavjud:
Joriy sanani olish uchun Temporal.Now.plainDateISO() metodidan foydalaniladi.
U vaqt zonalari va vaqtni aynan hisobga olmagan holda ISO 8601 kalendaridagi (yil, oy, kun) qiymatlariga ega PlainDate obyektini qaytaradi.
Qaysisini qachon ishlatish kerak?
new Temporal.PlainDate()’dan quyidagi hollarda foydalaning:
- Ishonchli sonli qiymatlaringiz bo‘lganda
- Tezlik kerak bo‘lganda
- Oldindan aytib bo‘ladigan yaratish usuli kerak bo‘lganda
- Siz sana hisobini qilyapsiz
Use Temporal.PlainDate.from() when:
- Siz foydalanuvchi ma’lumotlari (Stringlar) bilan ishlayapsiz
- Siz tashqi ma’lumotlar bilan ishlayapsiz (JSON)
- Maksimal moslashuvchanlik kerak bo‘lganda
Use Temporal.Now.plainDateISO() when:
- Sizga joriy sana kerak
Kunlarni qo‘shish va ayirish
Vaqt qo‘shish uchun add() metodidan foydalaning.
Misol
let date = Temporal.PlainDate.from("2026-05-17");
let nextWeek = date.add({ days: 7 });
O‘zingiz sinab ko‘ring »
Vaqtni ayirish uchun subtract() metodidan foydalaning.
Misol
let date = Temporal.PlainDate.from("2026-05-17");
let previousWeek = date.subtract({ days: 7 });
O‘zingiz sinab ko‘ring »
Barcha vaqtinchalik obyektlar o‘zlarining add() usuliga ega:
- duration.add(duration)
- instant.add(duration)
- plaindate.add(duration)
- plaintime.add(duration)
- plainyearmonth.add(duration)
- plainmonthday.add(duration)
- plaindatetime.add(duration)
- zoneddatetime.add(duration)
Barcha vaqtinchalik obyektlar o‘zlarining subtract() usuliga ega:
- duration.subtract(duration)
- instant.subtract(duration)
- plaindate.subtract(duration)
- plaintime.subtract(duration)
- plainyearmonth.subtract(duration)
- plainmonthday.subtract(duration)
- plaindatetime.subtract(duration)
- zoneddatetime.subtract(duration)
Batafsil bilib oling:
Duration va sana arifmetikasi
JavaScript Date bilan ishlaganda vaqt farqlarini ko‘pincha millisekundlar yordamida qo‘lda hisoblashingiz kerak bo‘ladi.
Date misoli
const start = new Date("2026-05-01");
const end = new Date("2026-05-17");
let diff = end - start;
O‘zingiz sinab ko‘ring »
JavaScript Temporal since() metodi
since() metodi ikki Temporal sanasi orasidagi davomiylikni hisoblaydi.
Sintaksis
t1.since(t2, options)
Meaning:
t1 vaqtida, t2 vaqtidan beri qancha vaqt o‘tdi?
Misol
const start = Temporal.PlainDate.from("2026-05-01");
const end = Temporal.PlainDate.from("2026-05-17");
const duration = end.since(start);
O‘zingiz sinab ko‘ring »
since() usuli Temporal.Duration obyektini qaytaradi
o‘tgan vaqtni ifodalaydi.
Agar "boshqa" sana o‘tmishda bo‘lsa, davomiylik ijobiy hisoblanadi.
Agar "boshqa" sana kelajakda bo‘lsa, muddat salbiy hisoblanadi.
with() metodi
with() usuli yangi PlainDate obyektini yaratadi
maxsus maydon bilan almashtiriladi.
Misol
// Create a PlainDate object
const date = Temporal.PlainDate.from("2026-05-17");
// Replace month and day
const customDate = date.with({ month:12, day:25 });
O‘zingiz sinab ko‘ring »
Sanalarni solishtirish
compare(date1, date2) usuli -1, 0 yoki 1 ni qaytaradi:
- -1, agar date1 date2’dan oldin bo‘lsa
- 0, agar ular teng bo‘lsa
- 1, agar date1 date2’dan keyin bo‘lsa
Misol
// Create two Temporal objects
const date1 = Temporal.PlainDate.from("2026-02-17");
const date2 = Temporal.PlainDate.from("2026-03-01");
// Compare the dates
let result = Temporal.PlainDate.compare(date1, date2);
O‘zingiz sinab ko‘ring »
Ikki sananing bir xilligini tekshirish uchun equals() dan ham foydalanishingiz mumkin.
Misol
// Create two Temporal objects
const a = Temporal.PlainDate.from("2026-02-17");
const b = Temporal.PlainDate.from("2026-02-17");
// Compare the dates
let result = (a.equals(b));
O‘zingiz sinab ko‘ring »
Temporal.PlainDate xususiyatlari
Temporal.PlainDate obyekti kalendar sanasi ma’lumotlarining 16 ta xususiyatiga ega.
Temporal kalendarlari
Temporal.PlainDate standart holatda ISO 8601 kalendaridan foydalanadi.
Agar siz aniq kalendarni xohlasangiz, taqvim parametrini qo‘shishingiz mumkin:
from() usuli [u-ca=calendar] sintaksisi yoki kalendar yordamida kalendarlarni qo‘llab-quvvatlaydi
obyektlardagi xususiyat.
Misollar
Temporal.PlainDate.from("2026-05-17[u-ca=chinese]")
O‘zingiz sinab ko‘ring »
Temporal.PlainDate.from({year:2026, month:5, day:17, calendar:"hebrew"})
O‘zingiz sinab ko‘ring »
Temporal obyektlari uchun yaroqli kalendar identifikatorlari (calendar_id):
- iso8601 - Default ISO calendar
- gregory - Gregorian calendar
- buddhist - Buddhist calendar
- Xitoy - Chinese calendar
- coptic - Coptic calendar
- dangi - Korean Dangi calendar
- ethioaa - Ethiopic Amete Alem
- ethiopic - Ethiopic calendar
- Ibroniylig (yahudiy) - Hebrew calendar
- indian - Indian (Saka) calendar
- islamic - Islamic calendar
- islamic-civil - Islamic civil calendar
- islamic-rgsa - Islamic (Saudi Arabia)
- islamic-tbla - Islamic tabular calendar
- islamic-umalqura - Umm al-Qura calendar
- Yapon - Japanese imperial calendar
- persian - Persian (Solar Hijri) calendar
- roc — Xitoy Respublikasi kalendari
Siz o‘zingizning muhitingizda qo‘llab-quvvatlanadigan qiymatlarni ro‘yxatlashingiz mumkin:
PlainDate’dan qachon foydalanish kerak
Any date without time
Birthdays
Deadlines
Holidays
Booking dates
Faqat sanadan iborat qiymatlar uchun Date o‘rniga
Date bilan har doim vaqt va vaqt zonasini ham olasiz.
Bu sizga faqat kalendar sanasi kerak bo‘lganda chalkashliklarni keltirib chiqarishi mumkin.
Date misoli
let d = new Date("2026-05-17");
PlainDate faqat yil, oy va kunni saqlash orqali buning oldini oladi.
Temporal.PlainDate metodlari
| Constructing | Tavsif |
|---|---|
| from() | Obyekt yoki stringdan yangi PlainDate obyektini yaratadi |
| new | (yil, oy, kun) qiymatlaridan yangi PlainDate obyektini yaratadi |
| Arithmetic | |
| add() | Davomiylik qo‘shilgan yangi PlainDate qaytaradi |
| subtract() | Davomiylik ayirilgan yangi PlainDate qaytaradi |
| Taqqoslash | |
| compare() | Ikki sanani solishtirganda -1, 0 yoki 1 qaytaradi |
| equals() | Ikki PlainDate obyekti bir xil bo‘lsa, true qaytaradi |
| since() | Boshqa sanadan beri o‘tgan farqni qaytaradi |
| until() | Farqni boshqa sanagacha qaytaradi |
| Converting | |
| toPlainDateTime() | Yangi PlainDateTime obyektini qaytaradi |
| toPlainMonthDay() | Yangi PlainMonthDay obyektini qaytaradi |
| toPlainYearMonth() | Yangi PlainYearMonth obyektini qaytaradi |
| toZonedDateTime() | Yangi ZonedDateTime obyektini qaytaradi |
| with() | Ko‘rsatilgan maydonlari o‘zgartirilgan yangi PlainDate qaytaradi |
| withCalendar() | Boshqa kalendar tizimidagi yangi PlainDate qaytaradi |
| Formatlash | |
| toJSON() | JSON serializatsiyasi uchun RFC 9557 formatidagi stringni qaytaradi |
| toLocaleString() | Sananing tilga sezgir tasvirini qaytaradi |
| toString() | RFC 9557 formatidagi string ko‘rinishini qaytaradi |
| valueOf() | TypeError ni chiqaradi (ibtidoiylarga aylantirilmasligi kerak) |
Temporal.PlainDate xususiyatlari
| Xususiyat | Tavsif |
|---|---|
| calendarID | Calendar system identifier ("iso8601") |
| day | Kun butun son sifatida (1-31) |
| dayOfWeek | Butun son sifatida haftaning kuni (1 = dushanba) |
| dayOfYear | Yilning tartibli kuni |
| daysInMonth | O‘sha oydagi kunlarning umumiy soni |
| daysInWeek | O‘sha haftadagi kunlarning umumiy soni |
| daysInYear | O‘sha yildagi kunlarning umumiy soni |
| era | Agar mavjud bo‘lsa, kalendarning davr nomi |
| eraYear | Era ichidagi yil (agar mavjud bo‘lsa) |
| inLeapYear | Yil kabisa yili ekanligini ko‘rsatuvchi mantiqiy qiymat |
| month | Oy butun son sifatida (1-12) |
| monthCode | Oy uchun string ko‘rinishidagi kod ("M01") |
| monthsInYear | O‘sha yildagi oylarning umumiy soni |
| weekOfYear | Yil ichidagi hafta raqami |
| Yil | Yil butun son sifatida |
| yearOfWeek | Hafta tegishli yil |
Barcha xususiyatlarni ko‘rsatish
const date = new Temporal.PlainDate(2026, 5, 17);
O‘zingiz sinab ko‘ring »
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
