АКЦЫЯ: бясплатныя месячныя курсы па стварэнні сайтаў
на выбар: вёрстка, JavaScript, PHP, Python або фрэймворкі. Сёння апошні дзень для запісу! Націскай!
⊗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); // якая дата будзе?
byenru