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 ინდექსიანია.
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.sssZYYYY- წელიწადის მნიშვნელობა, რომელიც გამოისახება 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() |
კონკრეტული მონაცემების ამოღების მაგალითი:
const christmas = new Date(2024, 11, 25);
christmas.getFullYear(); // 2024
christmas.getMonth(); // 11
christmas.getDate(); // 25
christmas.getDay(); // 3Set მეთოდები
| მნიშვნელობა | Local | UTC |
|---|---|---|
| წელიწადი | setFullYear() |
setUTCFullYear |
| თვე | setMonth() |
setUTCMonth() |
| რიცხვი (თვის) | setDate() |
setUTCDate() |
| საათი | setHours() |
setUTCHours() |
| წუთი | setMinutes() |
setUTCMinutes() |
| წამი | setSeconds() |
setUTCSeconds |
| მილიწამი | setMilliseconds() |
setUTCMilliseconds() |
Date ობიექტში დროის დაყენების მაგალითი:
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-ს.
console.log(Date.now()); // 1724589373831Date.parse() კითხულობს დროისა და თარიღის ტექსტურ რეპრეზენტაციას და აბრუნებს timestamp-ს.
მეთოდს აქვს როგორც ISO, ასევე UTC ფორმატის მხარდაჭერა, რაც ხელსაწყრელია ფორმატების კონვერტაციისთვის.
// 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.