Päivämäärän muotoilu JavaScriptissä
Opitaan nyt tulostamaan päivämäärä tietyssä muodossa. Oletetaan esimerkiksi, että haluamme tulostaa näytölle nykyiset päivän, kuukauden ja vuoden muodossa vuosi-kuukausi-päivä.
Tehdään se:
let date = new Date();
console.log(date.getFullYear() + '-' + date.getMonth() + '-' + date.getDate());
Koodissamme on kuitenkin ongelma: kuukausien numerot alkavat nollasta, mutta todennäköisesti haluaisimme, että ne alkaisivat ykkösestä.
Korjataan ongelma:
let date = new Date();
console.log(date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + date.getDate());
Koodimme ei kuitenkaan ole vielä täydellinen.
Sen voi kuitenkin huomata vain tiettyinä
kuukausina ja tiettyinä päivinä. Oletetaan esimerkiksi,
että nyt on 5. maaliskuuta 2020.
Tässä tapauksessa päivämäärämme tulostetaan muodossa 2020-3-5. Mutta haluaisimme, että päivämäärä tulostuisi muodossa 2020-03-05 - nollilla ennen yhden numeron päiviä ja kuukausia.
Ongelman ratkaisemiseksi kirjoitetaan funktio addZero,
joka lisää nollia numeroiden eteen
välillä 0 - 9:
function addZero(num) {
if (num >= 0 && num <= 9) {
return '0' + num;
} else {
return num;
}
}
Sovelletaan luotua funktiota ja nyt todella saamme päivämäärän haluamassamme muodossa:
let date = new Date();
console.log(
addZero(date.getFullYear()) + '-' +
addZero(date.getMonth() + 1) + '-' +
addZero(date.getDate())
);
Tulosta näytölle nykyinen päivämäärä-aika muodossa 12:59:59 31.12.2014. Käytä kaikkiin päivämäärän osiin (vuotta lukuun ottamatta) tekemäämme funktiota nollan lisäämiseksi tarvittaessa.