Date ობიექტი

დროსა და თარიღებთან სამუშაოდ ჯავასკრიპტში ვიყენებთ Date ობიექტს.

Date

ჯავასკრიპტში დრო თავისი ყველაზე ელემენტარული ფორმით არის რიცხვი, კერძოდ მილისეკუნდების რაოდენობა, რომელიც გავიდა 1970 წლის პირველი იანვრის შუაღამიდან. ამ თარიღთს ეწოდება იუნიქსის ეპოქა. მაშასადამე, ეპოქიდან გასულ მილისეკუნდებზე დაფუძნებით არის შესაძლებელი დროსა და თარიღთან დაკავშირებით მთელი რიგი ინფორმაციის გამოთვლა Date ობიექტის დახმარებით (მაგალითად რომელი თვე და რიცხვია, კვირის რომელი დღეა, რომელი საათია ამა თუ იმ დროის ზონაში და ა.შ).

Date ობიექტის დიაპაზონი არის -100,000,000-დან 100,000,00-მდე, სადაც 0 არის ეპოქის დაწყების მომენტი.

Date ობიექტის შექმნა

Date ობიექტის შექსამნელად საჭიროა new Date()-ის კონსტრუქტორის გამოყენება, რომელიც ნაგულისხმევად დააბრუნებს ლოკალური მოწყობილობის (თქვენი მოწყობილობის) დროს, თუმცა პარამეტრების გადაცემით, შეგვიძლია შევქმნათ კონკრეტული დროის ობიექტი.

პარამეტრები შეიძლება იყოს შემდეგნაირი:

  • არაფერი: შექმნის ამჟამინდელ დროს.
  • დროის აღწერის სტრინგი: განსხვავდება ჯავასკრიპტის ძრავის მიხედვით, თუმცა უნივერსალურად გამოიყენება ISO ფორმატი YYYY-MM-DDTHH:mm:ss.sssZ. მაგალითად: new Date('2024-01-01T00:00:00.000Z'). საათის, წუთებისა და წამების გამოტოვების შემთხვევაში მათი მნიშვნელობა იქნება ნული.
  • რიცხვები, რომლებიც თანმიმდევრულად შეესაბამება წელიწადს, თვეს, დღეს, საათს, წუთსა და წამს. მაგალითად: new Date(2024, 0, 1). საყურადღებოა, რომ თვეები ამ შემთხვევაში 0 ინდექსიანია.
JS
new Date(); // ცარიელი ანუ ამჟამინდელი დრო
new Date(date_string); // გადაცემული სტრინგის მიხედვით
new Date(year, month); // წელიწადის და თვის მიხედვით
new Date(year, month, day); // წელიწადის, თვის და დღის მიხედვით
new Date(year, month, day, hours); // წელიწადის, თვის, დღის და საათის მიხედვით
new Date(year, month, day, hours, minutes); // წელიწადის, თვის, დღის, საათის და წუთის მიხედვით
new Date(year, month, day, hours, minutes, seconds); // წელიწადის, თვის, დღის, საათის, წუთის და წამების მიხედვით
new Date(year, month, day, hours, minutes, seconds, ms); // წელიწადის, თვის, დღის, საათის, წუთის, წამების  და მილი წამების მიხედვით
new Date(ms); // მილიწამების მიხედვით

ზემოთ მოცემული ტექსტის გამოსატანად ჩვენ უბრალოდ გამოვიყენეთ თარიღის ობიექტიზე toString() მეთოდი და შედეგად მივიღეთ: კვირის დღე, თვე, რიცხვი, წელიწადი, საათი, წუთი, და წამი.

Date სტრინგის ფორმატი

თარიღის სტრინგად ფორმატირებისთვის ბევრი გზა არსებობს. JavaScript იყენებს ISO ფორმატს თარიღის გამოსატანად:

YYYY-MM-DDTHH:mm:ss.sssZ
  • YYYY - წელიწადის მნიშვნელობა, რომელიც გამოისახება 4 ციფრით (0000-დან 9999-მდე).
  • MM - თვის მნიშვნელობა, რომელიც გამოისახება 2 ციფრით (01-დან 12-მდე), ნაგულისხმევად არის 01.
  • DD - თვის რიცხვის მნიშვნელობა, რომელიც გამოისახება 2 ციფრით (01-დან 31-მდე), ნაგულისხმევად არის 01.
  • T - არის უბრალოდ სიმბოლო, რომელიც გამოიყენება გულისხმობს, რომ მის შემდეგ დაიწყება დროის მნიშვნელობა. საჭიროა როცა დროის გამოყენება გვსურს.
  • HH - საათის მნიშვნელობა, რომელიც გამოისახება 2 ციფრით (00-დან 23-მდე), ნაგულისხმევად არის 00.
  • mm - წუთების მნიშვნელობა, რომელიც გამოისახება 2 ციფრით (00-დან 59-მდე), ნაგლისხმევად არის 00.
  • ss - წამების მნიშვნელობა, რომელიც გამოისახება 2 ციფრით (00-დან 59-მდე), ნაგლისხმევად არის 00.
  • sss - მილისეკუნდების მნიშვნელობა, რომელიც გამოისახება 3 ციფრით (000-დან 999-მდე), ნაგლისხმევად არის 000.
  • z - GMT-ს დროის მნიშვნელობა.

მთლიანი ნოტაცია აუცილებელი არ არის. არსებობს უფრო მოკლე ფორმატებიც:

  • მხოლოდ თარიღი: YYYY, YYYY-MM, YYYY-MM-DD.
  • მხოლოდ დრო: HH:mm, HH:mm:ss, HH:mm:ss:sss.

Date-ის მეთოდები

Date ობიექტების მეთოდები შეგვიძლია ზოგად კატეგორიებად განვიხილოთ:

  • Get მეთოდები: თარიღის ობიექტიდან მნიშვნელობის ამოსაღებად.
  • Set მეთოდები: თარიღის ობიექტში მნიშვნელობის დასაყენებლად.
  • to მეთოდები: თარიღის ობიექტიდან სტრინგის მნიშვნელობების გამოსატანად.
  • parse და UTC მეთოდები: Date სტრინგების წასაკითხად.

Get და Set მეთოდებით შესაძლებელია ცალ-ცალკე ავიღოთ ან შევცვალოთ წამები, წუთები, საათები, დღეები, თვეები, წელები და ა.შ. მიუხედავად იმისა, რომ არსებობს getDay მეთოდი, რომელიც გვიბრუნებს კვირის დღეს, არ არსებობს შესაბამისი setDay მეთოდი, რადგან კვირის დღე ავტომატურად გამოითვლება. მეთოდები იყენებენ რიცხვებს მნიშვნელობის აღსაწერად:

  • წამები და წუთები: 0-დან 59-მდე
  • საათები: 0-დან 23-მდე
  • კვირის დღე (Day): 0-დან 6-მდე (0 ნიშნავს კვირა დღეს)
  • რიცხვი (Date, თვის დღე): 1-დან 31-მდე
  • თვეები (Month): 0-დან 11-მდე (0 ნიშნავს იანვარს)
  • წელები: 1900-იდან მოყოებული ნებისმიერი რიცხვი

Get მეთოდები

მნიშვნელობა Local UTC
წელიწადი getFullYear() getUTCFullYear()
თვე getMonth() getUTCMonth()
რიცხვი (თვის) getDate() getUTCDate()
საათი getHours() getUTCHours()
წუთი getMinutes() getUTCMinutes()
წამი getSeconds() getUTCSeconds()
მილისეკუნდი getMilliseconds() getUTCMilliseconds()
კვირის დღე getDay() getUTCDay()

კონკრეტული მონაცემების ამოღების მაგალითი:

JS
const christmas = new Date(2024, 11, 25);

christmas.getFullYear(); // 2024
christmas.getMonth(); // 11
christmas.getDate(); // 25
christmas.getDay(); // 3

Set მეთოდები

მნიშვნელობა Local UTC
წელიწადი setFullYear() setUTCFullYear
თვე setMonth() setUTCMonth()
რიცხვი (თვის) setDate() setUTCDate()
საათი setHours() setUTCHours()
წუთი setMinutes() setUTCMinutes()
წამი setSeconds() setUTCSeconds
მილიწამი setMilliseconds() setUTCMilliseconds()

Date ობიექტში დროის დაყენების მაგალითი:

JS
const specificDate = new Date();
specificDate.setFullYear(2025);
specificDate.setMonth(6);
specificDate.setDate(22);
console.log('დაყენებული თარიღი:', specificDate); // Tue Jul 22 2025 17:08:17 GMT+0400 (Georgia Standard Time)

დააკვირდით, რომ ვინაიდან ჩვენ საათი არ შევცვალეთ, იგი დარჩა ამჟამინდელი ლოკალური დროის მნიშვნელობის ტოლი.

სტატიკური მეთოდები

Date.now() მეთოდი აბრუნებს გასული მილიწამების მნიშვნელობას დაწყებული 1970 წლის 1 იანვრიდან, იგივე timestamp-ს.

JS
console.log(Date.now()); // 1724589373831

Date.parse() კითხულობს დროისა და თარიღის ტექსტურ რეპრეზენტაციას და აბრუნებს timestamp-ს. მეთოდს აქვს როგორც ISO, ასევე UTC ფორმატის მხარდაჭერა, რაც ხელსაწყრელია ფორმატების კონვერტაციისთვის.

JS
// Standard date-time string format
const unixTimeZero = Date.parse('1970-01-01T00:00:00Z');
// Non-standard format resembling toUTCString()
const javaScriptRelease = Date.parse('04 Dec 1995 00:12:00 GMT');

console.log(unixTimeZero); // 0

console.log(javaScriptRelease); //818035920000

მაგალითები

მარტივი ციფრული საათი:

შეჯამება

ამ სტატიაში განვიხილეთ თუ როგორ შეგვიძლია გამოვიყენოთ Date ობიექტი, რა მეთოდები გააჩნია და როგორი ფორმატით არის წარმოდგენილი Date.