Sana va vaqt (Date)
Sana va vaqt bilan ishlash uchun JavaScript'da o'rnatilgan Date obyekti mavjud. U orqali sanani yasash, uning yil, oy, kunini olish, ikki sana ayirmasini hisoblash mumkin.
Date obyektini yaratish
Yangi sana new Date() orqali yaratiladi. Argumentga qarab, bir necha xil ishlaydi:
Argumentsiz โ joriy sana va vaqtni beradi:
Satr bilan โ matndan sana o'qiladi (parse qilinadi):
Komponentlar bilan โ yil, oy, kun va h.k. alohida beriladi:
Sana komponentlarini olish
Yaratilgan sanadan uning qismlarini olish uchun quyidagi metodlar bor:
getFullYear()โ yilni beradi (4 xonali, masalan 2026);getMonth()โ oyni beradi (0'dan 11'gacha!);getDate()โ oyning kunini beradi (1'dan 31'gacha);getDay()โ hafta kunini beradi (0 = yakshanba, 1 = dushanba, ..., 6 = shanba);getHours(),getMinutes(),getSeconds(),getMilliseconds()โ soat, minut, sekund, millisekund.
getDay() ham 0'dan boshlanadi va yakshanbaga to'g'ri keladi (AQSh an'anasi). Ya'ni 0 = yakshanba, 1 = dushanba, 6 = shanba.getUTCFullYear(), getUTCHours() va hokazo.Timestamp โ getTime()
Har bir sana ichida timestamp saqlanadi โ bu 1970-yil 1-yanvar UTC 00:00:00'dan beri o'tgan millisekundlar soni. Bu boshlang'ich nuqta "Unix epoch" deb ataladi.
Timestamp bilan ishlash qulay โ chunki u oddiy son. Sanalarni solishtirish yoki ular orasidagi ayirmani hisoblashda aynan shu son ishlatiladi.
Sanalar ayirmasi
Ikki sanani bir-biridan ayirsak, natija millisekundlardagi farq bo'ladi (chunki sanalar avtomatik timestamp'ga aylanadi):
Bu yerda 1000 * 60 * 60 * 24 โ bir kundagi millisekundlar soni (1000 ms ร 60 sek ร 60 min ร 24 soat).
Date.now()
Agar bizga faqat joriy timestamp kerak bo'lsa (sana obyektining o'zi emas), Date.now() ishlatgan ma'qul. U to'g'ridan-to'g'ri sonni qaytaradi va ortiqcha Date obyekti yasamaydi โ bu tezroq:
Date.now() = new Date().getTime(), lekin oraliq obyekt yaratmaydi. Ko'p marta chaqiriladigan joylarda aynan Date.now() ishlating.Avtomatik tuzatish (autocorrection)
Date obyektining qiziq xususiyati bor: chegaradan tashqari qiymat bersangiz, u o'zini avtomatik tuzatadi. Masalan, "32-yanvar" beradigan bo'lsangiz, u "1-fevral"ga aylanadi:
Bu xususiyat foydali: "bugundan 90 kun keyin" kabi hisoblarni sodda qiladi โ chegaradan chiqib ketishdan qo'rqmasdan istalgan kun sonini qo'shaverasiz.
Xulosa
new Date()โ joriy, satr yoki komponentlardan sana yasaydi;- Oy 0'dan sanaladi (0 = yanvar, 11 = dekabr) โ eng ko'p yo'l qo'yiladigan xato!;
getFullYear,getMonth,getDate,getDayโ komponentlarni oladi (getDay: 0 = yakshanba);getTime()โ 1970-yildan beri o'tgan millisekundlar (timestamp);- Sanalar ayirmasi millisekundlarda bo'ladi;
Date.now()โ obyekt yaratmasdan joriy timestamp'ni beradi (tezroq).