თარიღების ავტომატური კორექტირება JavaScript-ში
JavaScript-ს აქვს ძალიან საინტერესო და სასარგებლო
თვისება: თუ Date ობიექტის შექმნისას
მითითებულია არასწორი დროის მომენტი -
ის ავტომატურად გადაითვლება სწორ მნიშვნელობაზე.
მოდით შევხედოთ მაგალითს.
როგორც იცით, 35 იანვარი არ არსებობს.
იანვრის მაქსიმალური დღეა - 31.
გამოდის, რომ ჩვენი 35 იანვარი
შეიცავს 4 დამატებით დღეს. JavaScript ამ
შემთხვევაში უბრალოდ დაუმატებს ამ დამატებით 4
დღეს მომდევნო თვეს:
let date = new Date(2018, 0, 35);
console.log(date); // მივიღებთ 4 თებერვალს
შესაძლებელია მიუთითოთ არა მხოლოდ დამატებითი დღეები,
არამედ თვეებიც. ამასთან, უნდა გახსოვდეთ, რომ თვეები
იწყება ნულიდან, რაც ნიშნავს, რომ ბოლო სწორი
თვეა 11-ე. თუ მიუთითებთ 12-ე
თვეს, მიიღებთ მომდევნო წლის იანვარს:
let date = new Date(2018, 12, 1); // მივუთითებთ მე-12 თვეს
console.log(date); // მივიღებთ 2019 წლის 1 იანვარს
აღწერილი კორექტირება მუშაობს ასევე ქვევითის
მიმართულებით. როგორც იცით, თვის ყველაზე მინიმალური
დღეა დღე ნომრით 1.
ამიტომ, თუ მიუთითებთ დღეს ნომრით 0,
მიიღებთ წინა თვის ბოლო დღეს:
let date = new Date(2018, 1, 0); // მივუთითებთ ნულოვან დღეს
console.log(date); // მივიღებთ 31 იანვარს
ასევე შესაძლებელია მიუთითოთ დღეებისა და თვეების უარყოფითი მნიშვნელობები.
ამასთან, უნდა გახსოვდეთ, რომ
მინიმალურ დღეს აქვს ნომერი 1, ხოლო
მინიმალურ თვეს - ნომერი 0. ეს ნიშნავს,
რომ მინუს პირველი დღე მოხვდება წინა თვის
ბოლოდან 2-ე დღეში, ხოლო მინუს
პირველი თვე მოხვდება უბრალოდ წინა
წლის ბოლო თვეში:
let date = new Date(2018, 1, -1); // მივუთითებთ -1 დღეს
console.log(date); // მივიღებთ 30 იანვარს
let date = new Date(2018, -1, 1); // მივუთითებთ -1 თვეს
console.log(date); // მივიღებთ 2017 წლის 1 დეკემბერს
ზემოთ ნათქვამი ანალოგიურად მუშაობს საათებთან, წუთებთან და წამებთან:
let date = new Date(2018, 0, 1, 24, 0, 0); // მივუთითებთ მე-24 საათს
console.log(date); // მივიღებთ 2 იანვარს, 0 საათი
let date = new Date(2018, 0, 1, 25, 0, 0); // მივუთითებთ მე-25 საათს
console.log(date); // მივიღებთ 2 იანვარს, 1 საათი
დაადგინეთ, რომელ თარიღში გარდაქმნის JavaScript შემდეგ დროის მომენტს:
let date = new Date(2018, 1, 35);
console.log(date); // რა თარიღი იქნება?
დაადგინეთ, რომელ თარიღში გარდაქმნის JavaScript შემდეგ დროის მომენტს:
let date = new Date(2018, 15, 1);
console.log(date); // რა თარიღი იქნება?
დაადგინეთ, რომელ თარიღში გარდაქმნის JavaScript შემდეგ დროის მომენტს:
let date = new Date(2018, 3, 31);
console.log(date); // რა თარიღი იქნება?
დაადგინეთ, რომელ თარიღში გარდაქმნის JavaScript შემდეგ დროის მომენტს:
let date = new Date(2018, 1, 31);
console.log(date); // რა თარიღი იქნება?
დაადგინეთ, რომელ თარიღში გარდაქმნის JavaScript შემდეგ დროის მომენტს:
let date = new Date(2018, 12, 33);
console.log(date); // რა თარიღი იქნება?
დაადგინეთ, რომელ თარიღში გარდაქმნის JavaScript შემდეგ დროის მომენტს:
let date = new Date(2018, 33, 33);
console.log(date); // რა თარიღი იქნება?
დაადგინეთ, რომელ თარიღში გარდაქმნის JavaScript შემდეგ დროის მომენტს:
let date = new Date(2018, 5, 0);
console.log(date); // რა თარიღი იქნება?
დაადგინეთ, რომელ თარიღში გარდაქმნის JavaScript შემდეგ დროის მომენტს:
let date = new Date(2018, 0, 0);
console.log(date); // რა თარიღი იქნება?
დაადგინეთ, რომელ თარიღში გარდაქმნის JavaScript შემდეგ დროის მომენტს:
let date = new Date(2018, -12, -33);
console.log(date); // რა თარიღი იქნება?
დაადგინეთ, რომელ თარიღში გარდაქმნის JavaScript შემდეგ დროის მომენტს:
let date = new Date(2018, 0, 1, 23, 0, 60);
console.log(date); // რა თარიღი იქნება?
დაადგინეთ, რომელ თარიღში გარდაქმნის JavaScript შემდეგ დროის მომენტს:
let date = new Date(2018, 0, 1, 23, 60, 0);
console.log(date); // რა თარიღი იქნება?
დაადგინეთ, რომელ თარიღში გარდაქმნის JavaScript შემდეგ დროის მომენტს:
let date = new Date(2018, 0, 1, 100, 100, 100);
console.log(date); // რა თარიღი იქნება?