Pelarasan Tarikh Automatik dalam JavaScript
JavaScript mempunyai ciri yang sangat menarik dan berguna:
jika saat mencipta objek Date
ditetapkan detik masa yang tidak betul -
ia akan dikira semula secara automatik kepada yang betul.
Mari kita lihat contohnya.
Seperti yang anda tahu, tarikh 35 Januari tidak wujud.
Hari maksimum yang mungkin bagi Januari ialah 31.
Ini bermakna tarikh kita 35 Januari
mempunyai 4 hari lebihan. JavaScript dalam kes
seperti ini hanya akan menambah 4 hari lebihan itu
kepada bulan berikutnya:
let date = new Date(2018, 0, 35);
console.log(date); // akan dapat 4 Februari
Bukan hanya hari lebihan yang boleh dinyatakan, malah
bulan juga. Perlu diingat bahawa bulan
bermula dari sifar, oleh itu bulan terakhir yang betul
ialah bulan 11. Jika bulan 12 dinyatakan,
maka ia akan menjadi Januari tahun berikutnya:
let date = new Date(2018, 12, 1); // nyatakan bulan ke-12
console.log(date); // akan dapat 1 Januari 2019
Pelarasan yang diterangkan juga berfungsi ke arah
yang lebih kecil. Seperti yang anda tahu, hari
terkecil bulan ialah hari bernombor 1.
Oleh itu, jika hari bernombor 0 dinyatakan,
maka ia akan menjadi hari terakhir bulan sebelumnya:
let date = new Date(2018, 1, 0); // nyatakan hari sifar
console.log(date); // akan dapat 31 Januari
Nilai negatif untuk hari dan bulan juga boleh dinyatakan.
Perlu diingat bahawa
hari minimum mempunyai nombor 1, dan
bulan minimum mempunyai nombor 0. Ini bermakna,
hari tolak pertama jatuh pada 2
hari dari hujung bulan sebelumnya, dan bulan
tolak pertama jatuh pada bulan terakhir
tahun sebelumnya:
let date = new Date(2018, 1, -1); // nyatakan -1 hari
console.log(date); // akan dapat 30 Januari
let date = new Date(2018, -1, 1); // nyatakan -1 bulan
console.log(date); // akan dapat 1 Disember 2017
Semua yang dinyatakan di atas berfungsi sama dengan jam, minit dan saat:
let date = new Date(2018, 0, 1, 24, 0, 0); // nyatakan jam ke-24
console.log(date); // akan dapat 2 Januari, 0 jam
let date = new Date(2018, 0, 1, 25, 0, 0); // nyatakan jam ke-25
console.log(date); // akan dapat 2 Januari, 1 jam
Tentukan kepada tarikh mana JavaScript akan mengubah detik masa berikut:
let date = new Date(2018, 1, 35);
console.log(date); // tarikh apakah yang akan jadi?
Tentukan kepada tarikh mana JavaScript akan mengubah detik masa berikut:
let date = new Date(2018, 15, 1);
console.log(date); // tarikh apakah yang akan jadi?
Tentukan kepada tarikh mana JavaScript akan mengubah detik masa berikut:
let date = new Date(2018, 3, 31);
console.log(date); // tarikh apakah yang akan jadi?
Tentukan kepada tarikh mana JavaScript akan mengubah detik masa berikut:
let date = new Date(2018, 1, 31);
console.log(date); // tarikh apakah yang akan jadi?
Tentukan kepada tarikh mana JavaScript akan mengubah detik masa berikut:
let date = new Date(2018, 12, 33);
console.log(date); // tarikh apakah yang akan jadi?
Tentukan kepada tarikh mana JavaScript akan mengubah detik masa berikut:
let date = new Date(2018, 33, 33);
console.log(date); // tarikh apakah yang akan jadi?
Tentukan kepada tarikh mana JavaScript akan mengubah detik masa berikut:
let date = new Date(2018, 5, 0);
console.log(date); // tarikh apakah yang akan jadi?
Tentukan kepada tarikh mana JavaScript akan mengubah detik masa berikut:
let date = new Date(2018, 0, 0);
console.log(date); // tarikh apakah yang akan jadi?
Tentukan kepada tarikh mana JavaScript akan mengubah detik masa berikut:
let date = new Date(2018, -12, -33);
console.log(date); // tarikh apakah yang akan jadi?
Tentukan kepada tarikh mana JavaScript akan mengubah detik masa berikut:
let date = new Date(2018, 0, 1, 23, 0, 60);
console.log(date); // tarikh apakah yang akan jadi?
Tentukan kepada tarikh mana JavaScript akan mengubah detik masa berikut:
let date = new Date(2018, 0, 1, 23, 60, 0);
console.log(date); // tarikh apakah yang akan jadi?
Tentukan kepada tarikh mana JavaScript akan mengubah detik masa berikut:
let date = new Date(2018, 0, 1, 100, 100, 100);
console.log(date); // tarikh apakah yang akan jadi?