Temporal’dagi xatolar

Temporal - bu kuchli API, lekin dastlab chalkash bo‘lishi mumkin.

  • To‘g‘ri Temporal turidan foydalanishni unutmang
  • Avoid implicit conversions
  • Always handle time zones correctly
  • < va > o‘rniga compare()’dan foydalaning
  • Temporal obyektlari o‘zgarmas ekanligini yodda tuting

Bu yerda bir nechta keng tarqalgan xatolar va ulardan qanday qochish kerak.

ULASHISH

Instant uchun UTC (Z) yetishmayapti

Instant har doim UTC’ni o‘z ichiga olishi shart.

Wrong

const instant = Temporal.Instant.from("2026-05-17T14:30:00");
O‘zingiz sinab ko‘ring »

To‘g‘ri

const instant = Temporal.Instant.from("2026-05-17T14:30:00Z");
O‘zingiz sinab ko‘ring »

PlainDateTime’ni vaqt zonasi bilan ishlatish

PlainDateTime vaqt zonalarini qo‘llab-quvvatlamaydi.

Wrong

const date = Temporal.PlainDateTime.from("2026-05-17T14:30:00Z");
O‘zingiz sinab ko‘ring »

To‘g‘ri

const date = Temporal.ZonedDateTime.from("2026-05-17T14:30:00");
O‘zingiz sinab ko‘ring »

Har xil turlarni solishtirish

Turli tiplarni solishtirishda Temporal obyektlari noto‘g‘ri natija berishi mumkin.

Wrong

const d1 = Temporal.PlainDate.from("2026-05-17");
const d2 = Temporal.Instant.from("2026-05-17T14:30Z");

Temporal.PlainDate.compare(d1, d2);
O‘zingiz sinab ko‘ring »

To‘g‘ri

const d1 = Temporal.PlainDate.from("2026-05-17");
const d2 = Temporal.PlainDateTime.from("2026-05-17T14:30");

Temporal.PlainDate.compare(d1, d2);
O‘zingiz sinab ko‘ring »

equals()’ni turli tiplar bilan ishlatish

Turli tiplarni solishtirishda Temporal obyektlari noto‘g‘ri natija berishi mumkin.

Wrong

const d1 = Temporal.PlainDate.from("2026-05-17");
const d2 = Temporal.Instant.from("2026-05-17T14:30Z");

d1.equals(d2);
O‘zingiz sinab ko‘ring »

To‘g‘ri

const d1 = Temporal.PlainDate.from("2026-05-17");
const d2 = Temporal.PlainDateTime.from("2026-05-17T14:30");

d1.equals(d2.toPlainDate());
O‘zingiz sinab ko‘ring »

Solishtirish uchun ==, < yoki > operatorlaridan foydalanish

Temporal obyektlarini ==, ===, < yoki > bilan solishtirib bo‘lmaydi.

Wrong

const d1 = Temporal.PlainDate.from("2026-05-17");
const d2 = Temporal.PlainDate.from("2026-05-17");

d1 === d2; // False
d1 == d2;  // False
d1 < d2;   // TypeError
d1 > d2;   // TypeError
O‘zingiz sinab ko‘ring »

To‘g‘ri

const d1 = Temporal.PlainDate.from("2026-05-17");
const d2 = Temporal.PlainDate.from("2026-05-17");

Temporal.PlainDate.compare(d1, d2);
O‘zingiz sinab ko‘ring »

Mutatsiyani kutish

Vaqtinchalik obyektlar o‘zgarmasdir.

Wrong

const date = Temporal.PlainDate.from("2026-05-17");

date.add({ months: 1 });
O‘zingiz sinab ko‘ring »

To‘g‘ri

const date = Temporal.PlainDate.from("2026-05-17");

const next = d.add({ months: 1 });
O‘zingiz sinab ko‘ring »

valueOf()’dan foydalanish

Temporal obyektlari songa aylanmaydi.

Misol

const date = Temporal.PlainDate.from("2026-05-17");

try {
  text = date.valueOf();
} catch (err) {
  text = err.name;
}
O‘zingiz sinab ko‘ring »

Mahalliy vaqt uchun Instant’dan foydalanish

Instant har doim UTC (mahalliy vaqt emas).

Wrong

Temporal.Now.instant(); // not local time
O‘zingiz sinab ko‘ring »

To‘g‘ri

Mahalliy vaqtni olish uchun Temporal.Now.zonedDateTimeISO()’dan foydalaning:

Temporal.Now.zonedDateTimeISO();
O‘zingiz sinab ko‘ring »

Vaqt uchun PlainDate dan foydalanish

PlainDate’da vaqt yo‘q.

Wrong

Temporal.PlainDate.from("2026-05-17T14:30");
O‘zingiz sinab ko‘ring »

To‘g‘ri

Temporal.PlainDateTime.from("2026-05-17T14:30");
O‘zingiz sinab ko‘ring »

ZonedDateTime’da vaqt zonasini unutish

ZonedDateTime vaqt zonasini talab qiladi.

Wrong

Temporal.ZonedDateTime.from("2026-05-17T14:30:00");
O‘zingiz sinab ko‘ring »

To‘g‘ri

Temporal.ZonedDateTime.from("2026-05-17T14:30:00+02:00[Europe/Oslo]");
O‘zingiz sinab ko‘ring »

To‘g‘ri tipni tanlamaslik

Har bir Temporal tipining o‘z maqsadi bor.

Turi Use
Instant Exact moment (UTC)
PlainDate Faqat sana
PlainTime Faqat vaqt
PlainDateTime Faqat sana + vaqt
ZonedDateTime Date + time + time zone
Duration Faqat vaqt davomiyligi

W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!