Koreksi Otomatis Tanggal dalam JavaScript
JavaScript memiliki fitur yang sangat menarik dan berguna:
jika saat membuat objek Date
ditetapkan momen waktu yang tidak valid -
itu akan secara otomatis dihitung ulang menjadi valid.
Mari kita lihat contohnya.
Seperti yang Anda ketahui, tanggal 35 Januari tidak ada.
Hari maksimum yang mungkin di bulan Januari adalah 31.
Artinya, tanggal kita 35 Januari
memiliki 4 hari ekstra. JavaScript dalam hal ini
akan menambahkan 4 hari ekstra tersebut
ke bulan berikutnya:
let date = new Date(2018, 0, 35);
console.log(date); // akan menjadi 4 Februari
Anda tidak hanya dapat menentukan hari ekstra, tetapi
juga bulan ekstra. Perlu diingat bahwa bulan
dimulai dari nol, yang berarti bulan valid terakhir
adalah bulan ke-11. Jika Anda menentukan bulan ke-12,
maka hasilnya akan menjadi bulan Januari tahun depan:
let date = new Date(2018, 12, 1); // menentukan bulan ke-12
console.log(date); // akan menjadi 1 Januari 2019
Koreksi yang dijelaskan juga bekerja untuk nilai
yang lebih kecil. Seperti yang Anda ketahui, hari
minimum dalam sebuah bulan adalah hari dengan nomor 1.
Oleh karena itu, jika Anda menentukan hari dengan nomor 0,
maka hasilnya akan menjadi hari terakhir bulan sebelumnya:
let date = new Date(2018, 1, 0); // menentukan hari ke-nol
console.log(date); // akan menjadi 31 Januari
Anda juga dapat menentukan nilai negatif untuk
hari dan bulan. Perlu diingat bahwa
hari minimum memiliki nomor 1, dan
bulan minimum memiliki nomor 0. Ini berarti
bahwa hari minus pertama akan jatuh pada 2
hari dari akhir bulan sebelumnya, dan bulan
minus pertama akan jatuh pada bulan
terakhir tahun sebelumnya:
let date = new Date(2018, 1, -1); // menentukan -1 hari
console.log(date); // akan menjadi 30 Januari
let date = new Date(2018, -1, 1); // menentukan -1 bulan
console.log(date); // akan menjadi 1 Desember 2017
Semua yang dikatakan di atas juga berlaku untuk jam, menit, dan detik:
let date = new Date(2018, 0, 1, 24, 0, 0); // menentukan jam ke-24
console.log(date); // akan menjadi 2 Januari, 0 jam
let date = new Date(2018, 0, 1, 25, 0, 0); // menentukan jam ke-25
console.log(date); // akan menjadi 2 Januari, 1 jam
Tentukan menjadi tanggal berapa JavaScript akan mengubah momen waktu berikut:
let date = new Date(2018, 1, 35);
console.log(date); // tanggal berapa yang akan dihasilkan?
Tentukan menjadi tanggal berapa JavaScript akan mengubah momen waktu berikut:
let date = new Date(2018, 15, 1);
console.log(date); // tanggal berapa yang akan dihasilkan?
Tentukan menjadi tanggal berapa JavaScript akan mengubah momen waktu berikut:
let date = new Date(2018, 3, 31);
console.log(date); // tanggal berapa yang akan dihasilkan?
Tentukan menjadi tanggal berapa JavaScript akan mengubah momen waktu berikut:
let date = new Date(2018, 1, 31);
console.log(date); // tanggal berapa yang akan dihasilkan?
Tentukan menjadi tanggal berapa JavaScript akan mengubah momen waktu berikut:
let date = new Date(2018, 12, 33);
console.log(date); // tanggal berapa yang akan dihasilkan?
Tentukan menjadi tanggal berapa JavaScript akan mengubah momen waktu berikut:
let date = new Date(2018, 33, 33);
console.log(date); // tanggal berapa yang akan dihasilkan?
Tentukan menjadi tanggal berapa JavaScript akan mengubah momen waktu berikut:
let date = new Date(2018, 5, 0);
console.log(date); // tanggal berapa yang akan dihasilkan?
Tentukan menjadi tanggal berapa JavaScript akan mengubah momen waktu berikut:
let date = new Date(2018, 0, 0);
console.log(date); // tanggal berapa yang akan dihasilkan?
Tentukan menjadi tanggal berapa JavaScript akan mengubah momen waktu berikut:
let date = new Date(2018, -12, -33);
console.log(date); // tanggal berapa yang akan dihasilkan?
Tentukan menjadi tanggal berapa JavaScript akan mengubah momen waktu berikut:
let date = new Date(2018, 0, 1, 23, 0, 60);
console.log(date); // tanggal berapa yang akan dihasilkan?
Tentukan menjadi tanggal berapa JavaScript akan mengubah momen waktu berikut:
let date = new Date(2018, 0, 1, 23, 60, 0);
console.log(date); // tanggal berapa yang akan dihasilkan?
Tentukan menjadi tanggal berapa JavaScript akan mengubah momen waktu berikut:
let date = new Date(2018, 0, 1, 100, 100, 100);
console.log(date); // tanggal berapa yang akan dihasilkan?