JS Temporal
JavaScript Temporal nima?
Temporal - bu JavaScript-da sana va vaqt uchun yangi standart.
Yangi Vaqtinchalik obyektlar eski Date obyektini almashtirish uchun mo‘ljallangan.
Eski sanadan farqli o‘laroq, Vaqtinchalik obyektlar o‘zgarmasdir va vaqt mintaqalari, yozgi vaqt, sana arifmetik va Grigorian bo‘lmagan kalendarlar uchun birinchi darajali yordam beradi.
Temporal JavaScript 2026 tarkibidami?
Temporal 2026-yil iyulida TC39’ning 4-bosqichiga yetdi.
4-bosqich funksiya tugallanganligini va keyingi nashrga kiritilishini bildiradi. Muhim vaqt tafsiloti shundaki, ECMAScript 2026 allaqachon kesilgan va unda Temporal mavjud emas edi.
Xulosa: Temporal JavaScript 2026 emas, JavaScript 2027 tarkibiga kiradi.
Bu biroz chalkash bo‘lishi mumkin, chunki u 2026 yilda 4-bosqichga aylandi va brauzerlar ES2026 chiqarilishidan ancha oldin Temporal-ni joriy qilishni boshladilar.
Brauzerlarda qo‘llab-quvvatlash
Temporal - bu JavaScript standartining asosiy yangilanishi.
Hozirda u Chrome, Edge, Firefox va Opera-da qo‘llab-quvvatlanadi va 2027 yilgacha barcha brauzerlarda to‘liq foydalanish mumkin bo‘lishi kutilmoqda.
| Chrome 144 |
Edge 144 |
Firefox 139 |
Safari |
Opera 128 |
| Jan 2026 | Jan 2026 | May 2025 | 🚫 | Feb 2026 |
Safari ilovasi --use-temporal ish vaqti bayrog‘ini yoqish orqali Safari Technology Preview-da sinovdan o‘tkazilishi mumkin.
Polyfill
Safari Temporal-ni mahalliy ravishda qo‘llab-quvvatlamaguncha, siz rasmiy polifilldan foydalanishingiz mumkin:
<script
src="https://cdn.jsdelivr.net/npm/@js-temporal/polyfill/dist/index.umd.js">
</script>
Temporal’ni o‘rganish yo‘li
JavaScript Temporal’ni to‘g‘ri tartibda o‘rganing.
Temporal va Date
JavaScript vaqtinchalik va JavaScript sanasini solishtiring.
Sana va vaqtinchalik o‘rtasidagi farqlarni bilib oling
- Date’da oylar 0 dan, Temporal’da esa 1 dan boshlanadi
- Sana arifmetikasi qo‘lda, Temporal o‘rnatilgan
- Sana qiymatlarni o‘zgartiradi, vaqtinchalik emas
- Sana UTC va vaqt mintaqalarini aralashtiradi, Temporal ularni ajratadi
- Sana matematikasi DST bilan ishlashda muvaffaqiyatsiz bo‘lishi mumkin, vaqtinchalik bo‘lishi mumkin emas
Nima uchun Temporal sanaga zamonaviy muqobil ekanligini bilib oling.
Temporal.Duration
Temporal.Duration obyekti vaqt davomiyligini ifodalaydi.
Misol: 7 days and 1 hour.
Temporal.Duration obyekti quyidagi xususiyatlarni o‘z ichiga oladi:
years, months, weeks, days, hours, minutes, seconds, milliseconds, and nanoseconds.
Duration obyekti eski JavaScript Date obyektiga xos xatolar va murakkabliklarsiz aniq sana va vaqt arifmetikasini (masalan, qo‘shish va ayirish) bajarish uchun ishlatiladi.
Siz nimani o‘rganasiz:
- JavaScript Temporal.Duration’dan qanday foydalanish
- Vaqt uzunligini qanday ifodalash va hisoblash mumkin
- Qanday qilib kunlar, soatlar va oylarni xavfsizroq qo‘shish va ayirish mumkin
Temporal.Instant
Temporal.Instant obyekti UTC vaqtidagi aniq momentni ifodalaydi.
Unda vaqt mintaqasi va kalendar YO‘Q.
U 1970-yil 1-yanvar 00:00:00’dan beri o‘tgan nanosekundlarni saqlaydi (Unix epoxasi).
Misol: 2026-05-17T14:30:00Z
Siz nimani o‘rganasiz:
- Vaqtning aniq daqiqalari bilan qanday ishlash kerak
- Instant’larni qanday solishtirish
- Vaqt belgilaridan qanday aylantirish mumkin
- Date.now() ni qanday almashtirish kerak
Temporal.PlainDateTime
Temporal.PlainDateTime obyekti sof sana va vaqt obyektidir.
Bu taqvim sanasi va vaqt zonasisiz devor soati vaqtini bildiradi.
Misol: 2026-05-07T14:30:00.
Siz nimani o‘rganasiz:
- JavaScript Temporal.PlainDateTime’ni qanday yaratish
- Vaqt mintaqasisiz sana va vaqt bilan qanday ishlash kerak
- Sanalarni qanday qo‘shish va ayirish mumkin
- Sanalarni xavfsiz tarzda qanday solishtirish
Temporal.PlainDate
Temporal.PlainDate obyekti vaqtsiz kalendar sanasini ifodalaydi.
Temporal.PlainDate odatda ISO 8601 formatida bo‘ladi (2026-05-01).
Tug‘ilgan kunlar yoki bayramlar kabi vaqt mintaqasidan qat’iy nazar bir xil sanalar uchun DateTime obyektlaridan foydalanish osonroq va solishtirish xavfsizroq.
Siz nimani o‘rganasiz:
- JavaScript Temporal.PlainDate’ni qanday yaratish
- Vaqtsiz sanalar bilan qanday ishlash kerak
- PlainDates qanday qo‘shiladi va ayiriladi
- Sanalarni xavfsiz tarzda qanday solishtirish
Temporal.PlainYearMonth
Temporal.PlainMontDay
Temporal.PlainMonthDay Object
Temporal.PlainMonthDay() obyekti — oy va kunni ifodalovchi obyekt.
U ISO 8601 taqvimining oy va kunini bir yil yoki vaqtsiz ifodalaydi.
Misol: 05-17.
Temporal.PlainTime
Temporal.PlainTime obyekti — sanasiz vaqt obyekti.
U ISO 8601 devor soati vaqtini sana yoki vaqt zonasisiz ifodalaydi.
Misol: 10:30:00.
Bu ish soatlari, signallar va har qanday faqat vaqt qiymatlari uchun foydalidir.
Temporal.ZonedDateTime
Temporal.ZonedDateTime obyekti vaqt mintaqasi bilan sana va vaqtni ifodalaydi.
Bu xalqaro sana va vaqt hisoblarini boshqarishning eng xavfsiz usuli.
Bu keng tarqalgan DST xatolarining oldini oladi va vaqt mintaqasini o‘zgartirishni aniq va bashoratli qiladi.
Siz nimani o‘rganasiz:
- JavaScript Temporal.ZonedDateTime’ni qanday yaratish
- Vaqt zonalari bilan qanday to‘g‘ri ishlash
- ZonedDateTimes qanday qo‘shiladi va ayiriladi
- DST (yozgi vaqt) bilan bog‘liq xatolardan qanday qochish
- Vaqt zonalari o‘rtasida xavfsiz tarzda qanday o‘girish
Temporal.Now
Temporal.Now Object tizimning sanasi va vaqtini olishning 5 ta usulini taqdim etadi.
Har bir sana obyekti uchun bitta metod:
- Temporal.Now.instant()
- Temporal.Now.plainDateISO()
- Temporal.Now.plainTimeISO()
- Temporal.Now.plainDateTimeISO()
- Temporal.Now.zonedDateTimeISO()
Temporal arifmetikasi
Temporal oson va ishonchli sana va vaqt arifmetikasi usullarini taqdim etadi.
Asl nusxani o‘zgartirmasdan kunlar, oylar, yillar va vaqtlarni qo‘shing va ayiring.
Perform date arithmetic without DST bugs and Time Zone problems.
Temporal since / until
Temporal yordamida farqlarni hisoblash
since() metodi ikki sana orasidagi since (…dan beri) davomiylikni hisoblaydi.
until() metodi ikki sana orasidagi until (…gacha) davomiylikni hisoblaydi.
since() va until() amalda bir-biriga teskari.
Temporal’da taqqoslash
Sanalarni taqqoslash
JavaScript’da <, >, == yoki === kabi operatorlar yordamida obyektlarni solishtirib bo‘lmaydi.
Standart tenglik operatorlari o‘rniga har doim equals() yoki compare() metodlaridan foydalaning.
Temporal konvertatsiya qoidalari
Quyidagi jadvalda Temporal turlarni qanday aylantirish mumkinligi ko‘rsatilgan:
| Nimadan | Plain Sana |
Plain Time |
Plain DateTime |
Zoned DateTime |
Instant |
| PlainDate | Yo‘q | Ha | Yo‘q | Yo‘q | |
| PlainTime | Yo‘q | Yo‘q | Yo‘q | Yo‘q | |
| PlainDateTime | Ha | Ha | Ha | Yo‘q | |
| ZonedDateTime | Ha | Ha | Ha | Ha | |
| Instant | Yo‘q | Yo‘q | Yo‘q | Ha |
Temporal formatlari
Temporal sanalarini turli usullarda string ko‘rinishiga serializatsiya qilish mumkin:
| Metod | Tavsif |
|---|---|
| toString() | RFC 9557 / ISO 8601 formatidagi sana stringiga. |
| toLocaleString() | "en-US" kabi tilga moslashgan stringga. |
| Intl.DateTimeFormat() | Chiqish ustidan ko‘proq nazorat kerak bo‘lganda. |
Temporal standartlari
Bu siz bilishingiz kerak bo‘lgan vaqtinchalik standartlar:
| Nomi | Tavsif |
|---|---|
| ISO 8601 | International standard |
| RFC 3339 | Internet standard |
| RFC 9557 | Temporal standard |
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
