⊗jsPmTmAA 322 of 505 menu

Автоматична корекция на дати в 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); // ще се получи 1 януари 2019 година

Описната корекция работи и в по-малката посока. Както знаете, най-минималният ден от месеца е денят с номер 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); // ще се получи 1 декември 2017 година

Всичко казано по-горе аналогично работи с часове, минути и секунди:

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); // коя дата ще бъде?
Български
AfrikaansAzərbaycanবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ние използваме бисквитки за работата на сайта, анализ и персонализация. Обработката на данни се извършва в съответствие с Политика за поверителност.
приемам всички настройки отхвърляне