Outomatiese datumkorreksie in JavaScript

JavaScript het 'n baie interessante en nuttige kenmerk: indien 'n ongeldige tydstip gespesifiseer is by die skepping van die Date-voorwerp - sal dit outomaties na 'n geldige een herbereken word. Kom ons kyk na 'n voorbeeld.

Soos jy weet, bestaan die datum 35 Januarie nie. Die maksimum moontlike dag in Januarie is 31. Dit beteken dat ons datum 35 Januarie 4 oortollige dae het. JavaScript sal in so 'n geval eenvoudig hierdie oortollige 4 dae by die volgende maand voeg:

javascriptlet date = new Date(2018, 0, 35);
console.log(date); // sal 4 Februarie wees

Jy kan nie net oortollige dae spesifiseer nie, maar ook maande. Onthou egter dat maande by nul begin, wat beteken die laaste geldige maand is die 11-de. As jy die 12-de maand spesifiseer, sal jy Januarie van die volgende jaar kry:

javascriptlet date = new Date(2018, 12, 1); // spesifiseer die 12-de maand
console.log(date); // sal 1 Januarie 2019 wees

Die beskryfde korreksie werk ook in die minder rigting. Soos jy weet, is die kleinste moontlike dag van die maand dag nommer 1. Dus, as jy dag nommer 0 spesifiseer, sal jy die laaste dag van die vorige maand kry:

javascriptlet date = new Date(2018, 1, 0); // spesifiseer nul-dag
console.log(date); // sal 31 Januarie wees

Jy kan ook negatiewe waardes vir dae en maande spesifiseer. Onthou dat die kleinste dag nommer 1 is, en die kleinste maand nommer 0 is. Dit beteken dat die negatiewe eerste dag in die 2 laaste dag van die vorige maand val, en die negatiewe eerste maand val in die laaste maand van die vorige jaar:

javascriptlet date = new Date(2018, 1, -1); // spesifiseer -1 dag
console.log(date); // sal 30 Januarie wees
javascriptlet date = new Date(2018, -1, 1); // spesifiseer -1 maand
console.log(date); // sal 1 Desember 2017 wees

Alles wat hierbo gesê is, werk eweneens vir ure, minute en sekondes:

javascriptlet date = new Date(2018, 0, 1, 24, 0, 0); // spesifiseer die 24-ste uur
console.log(date); // sal 2 Januarie, 0 ure wees
javascriptlet date = new Date(2018, 0, 1, 25, 0, 0); // spesifiseer die 25-ste uur
console.log(date); // sal 2 Januarie, 1 uur wees
Задание 1

Bepaal na watter datum JavaScript die volgende tydstip sal omskakel:

javascriptlet date = new Date(2018, 1, 35);
console.log(date); // wat sal die datum wees?
Задание 2

Bepaal na watter datum JavaScript die volgende tydstip sal omskakel:

javascriptlet date = new Date(2018, 15, 1);
console.log(date); // wat sal die datum wees?
Задание 3

Bepaal na watter datum JavaScript die volgende tydstip sal omskakel:

javascriptlet date = new Date(2018, 3, 31);
console.log(date); // wat sal die datum wees?
Задание 4

Bepaal na watter datum JavaScript die volgende tydstip sal omskakel:

javascriptlet date = new Date(2018, 1, 31);
console.log(date); // wat sal die datum wees?
Задание 5

Bepaal na watter datum JavaScript die volgende tydstip sal omskakel:

javascriptlet date = new Date(2018, 12, 33);
console.log(date); // wat sal die datum wees?
Задание 6

Bepaal na watter datum JavaScript die volgende tydstip sal omskakel:

javascriptlet date = new Date(2018, 33, 33);
console.log(date); // wat sal die datum wees?
Задание 7

Bepaal na watter datum JavaScript die volgende tydstip sal omskakel:

javascriptlet date = new Date(2018, 5, 0);
console.log(date); // wat sal die datum wees?
Задание 8

Bepaal na watter datum JavaScript die volgende tydstip sal omskakel:

javascriptlet date = new Date(2018, 0, 0);
console.log(date); // wat sal die datum wees?
Задание 9

Bepaal na watter datum JavaScript die volgende tydstip sal omskakel:

javascriptlet date = new Date(2018, -12, -33);
console.log(date); // wat sal die datum wees?
Задание 10

Bepaal na watter datum JavaScript die volgende tydstip sal omskakel:

javascriptlet date = new Date(2018, 0, 1, 23, 0, 60);
console.log(date); // wat sal die datum wees?
Задание 11

Bepaal na watter datum JavaScript die volgende tydstip sal omskakel:

javascriptlet date = new Date(2018, 0, 1, 23, 60, 0);
console.log(date); // wat sal die datum wees?
Задание 12

Bepaal na watter datum JavaScript die volgende tydstip sal omskakel:

javascriptlet date = new Date(2018, 0, 1, 100, 100, 100);
console.log(date); // wat sal die datum wees?