⊗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štinaDanskDeutschEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Χρησιμοποιούμε cookie για τη λειτουργία του ιστότοπου, την ανάλυση και την εξατομίκευση. Η επεξεργασία των δεδομένων γίνεται σύμφωνα με την Πολιτική Απορρήτου.
αποδοχή όλων ρύθμιση απόρριψη