Date va Time

...

Sana va vaqt

JavaScriptda yangi Date obyektini o'rganamiz. U sana va vaqtni saqlaydi va vaqt boshqaruvi uchun turli xil metodlarni taqdim etadi.

Masalan, Date obyektidan yaratish/muharrir qilish vaqtlarini saqlash, vaqtni o'lchash yoki hozirgi sanani chop etish uchun foydalanishimiz mumkin.

Yaratish

Yangi Date obyektini yaratish uchun new Date() chaqiring va quyidagi usullardan birini qo'llang:

new Date()

Argumentlarsiz chaqirilsa – hozirgi sana va vaqtni oladi:

let now = new Date();
alert(now); // hozirgi sana/vaqtni ko'rsatadi

new Date(milliseconds)

Millisekundlarni ko'rsatish orqali vaqtni belgilaydigan Date obyektini yarating (1970 yil 1 yanvardan boshlab):

let Jan01_1970 = new Date(0);
alert(Jan01_1970); // 01.01.1970 UTC+0
 
// 24 soat qo'shsak, 02.01.1970 UTC+0
let Jan02_1970 = new Date(24 * 3600 * 1000);
alert(Jan02_1970);

1970 yil 1 yanvardan boshlab o'tgan millisekundlar timestamp deb ataladi. Uni son bilan ishlashda qulay foydalanish mumkin.

Masalan:

// 31 dekabr 1969
let Dec31_1969 = new Date(-24 * 3600 * 1000);
alert(Dec31_1969);

new Date(datestring)

Bitta argument qabul qilinsa va u satr bo'lsa, u avtomatik ravishda sanaga aylantiriladi.

let date = new Date("2017-01-26");
alert(date);
// Natija ishga tushirilgan vaqt zonasiga qarab farq qilishi mumkin

new Date(year, month, date, hours, minutes, seconds, ms)

Berilgan komponentlar bilan sanani yarating (mahalliy vaqt zonasi bo'yicha). Faqat birinchi ikki argument majburiydir.

  • Yil 4 ta raqam bilan ko'rsatiladi.
  • Oy 0 dan boshlanadi (0 – yanvar, 11 – dekabr).
  • Sana kiritilmasa, 1 qabul qilinadi.
  • Soat/minut/soniya/ms kiritilmasa, ular 0 qabul qilinadi.
new Date(2011, 0, 1, 0, 0, 0, 0); // 1 yanvar 2011, 00:00:00
new Date(2011, 0, 1); // Xuddi shu, soatlar va boshqalar 0

Sana komponentlariga kirish

Date obyektidagi yil, oy va boshqa komponentlarga kirish uchun quyidagi metodlar mavjud:

  • getFullYear(): To'liq yilni oladi (masalan, 2023).
  • getMonth(): 0 dan 11 gacha oyni oladi.
  • getDate(): Oy kunini oladi (1 dan 31 gacha).
  • getHours(), getMinutes(), getSeconds(), getMilliseconds(): Tegishli vaqt komponentlarini oladi.

Masalan:

let date = new Date();
alert(date.getFullYear()); // yilni ko'rsatadi
alert(date.getMonth());    // oyni ko'rsatadi
alert(date.getDate());     // kunni ko'rsatadi

Sana komponentlarini o'rnatish

Sana va vaqt komponentlarini quyidagi metodlar yordamida o'zgartirish mumkin:

  • setFullYear(year, [month], [date])
  • setMonth(month, [date])
  • setDate(date)
  • setHours(hour, [min], [sec], [ms])
  • setMinutes(min, [sec], [ms])
  • setSeconds(sec, [ms])
  • setMilliseconds(ms)
  • setTime(milliseconds) (sana va vaqtni millisekundlar bilan o'rnatadi)

Misol:

let today = new Date();
today.setHours(0);
alert(today); // soat 0 ga o'zgardi, ammo kun o'sha

Avtomatik tuzatish

Agar noaniq qiymatlar kiritilsa, Date avtomatik ravishda o'zini tuzatadi.

let date = new Date(2013, 0, 32); // 32-yanvar?!
alert(date); // avtomatik 1-fevralga aylanadi

Vaqt o'lchash

Date yordamida vaqtni o'lchash ham mumkin. Sana obyektlari millisekundlarda o'lchanadi, shuning uchun sanalar orasidagi farqni topish oson.

let start = new Date();
// Vaqt talab qiladigan ishlarni bajaramiz
for (let i = 0; i < 100000; i++) {
  let doSomething = i * i * i;
}
let end = new Date();
alert(`Loop ${end - start} ms davom etdi`);

Date.now()

Agar faqat hozirgi vaqtni o'lchash kerak bo'lsa, Date.now() funksiyasini qo'llang. U hozirgi vaqtni millisekundlarda qaytaradi.

let start = Date.now();
// Vazifani bajaramiz
for (let i = 0; i < 100000; i++) {
  let doSomething = i * i * i;
}
let end = Date.now();
alert(`Loop ${end - start} ms davom etdi`);

Sana satrdan o'qish

Date.parse(str) funksiyasi berilgan satrdan sanani o'qib, uni millisekundlarga aylantiradi.

let ms = Date.parse('2012-01-26T13:51:50.417-07:00');
alert(ms); // timestamp
let date = new Date(ms);
alert(date); // Sana obyektini yaratadi

Xulosa

  • JavaScriptda sana va vaqtni Date obyektida saqlanadi.
  • Oylari 0 dan boshlanadi, hafta kunlari ham 0 dan boshlanadi (yakshanba).
  • Sanalar o'zidan keyingi sanalarga avtomatik o'tadi.
  • Millisekundlarda vaqt o'lchashda Date.now() funksiyasidan foydalanish tavsiya etiladi.

Ushbu sahifada

GitHubda tahrirlash