Ada beberapa hal gila yang terjadi dengan objek JS DATE yang mengonversi string, misalnya pertimbangkan tanggal berikut yang Anda berikan
Catatan: Contoh-contoh berikut mungkin atau mungkin tidak SATU HARI, tergantung pada zona waktu ANDA dan waktu saat ini.
new Date("2011-09-24"); // Year-Month-Day
// => Fri Sep 23 2011 17:00:00 GMT-0700 (MST) - ONE DAY OFF.
Namun, jika kami mengatur ulang format string ke Bulan-Hari-Tahun ...
new Date("09-24-2011");
=> // Sat Sep 24 2011 00:00:00 GMT-0700 (MST) - CORRECT DATE.
Satu lagi yang aneh
new Date("2011-09-24");
// => Fri Sep 23 2011 17:00:00 GMT-0700 (MST) - ONE DAY OFF AS BEFORE.
new Date("2011/09/24"); // change from "-" to "/".
=> // Sat Sep 24 2011 00:00:00 GMT-0700 (MST) - CORRECT DATE.
Kami dapat dengan mudah mengubah tanda hubung pada tanggal Anda "2011-09-24" saat membuat tanggal baru
new Date("2011-09-24".replace(/-/g, '\/')); // => "2011/09/24".
=> // Sat Sep 24 2011 00:00:00 GMT-0700 (MST) - CORRECT DATE.
Bagaimana jika kita memiliki string tanggal seperti "2011-09-24T00: 00: 00"
new Date("2011-09-24T00:00:00");
// => Fri Sep 23 2011 17:00:00 GMT-0700 (MST) - ONE DAY OFF.
Sekarang ganti tanda hubung untuk meneruskan tebasan seperti sebelumnya; apa yang terjadi?
new Date("2011/09/24T00:00:00");
// => Invalid Date
Saya biasanya harus mengelola format tanggal 2011-09-24T00: 00: 00 jadi ini yang saya lakukan.
new Date("2011-09-24T00:00:00".replace(/-/g, '\/').replace(/T.+/, ''));
// => Sat Sep 24 2011 00:00:00 GMT-0700 (MST) - CORRECT DATE.
MEMPERBARUI
Jika Anda memberikan argumen terpisah ke konstruktor Tanggal Anda bisa mendapatkan hasil berguna lainnya seperti yang dijelaskan di bawah ini
Catatan: argumen bisa bertipe Number atau String. Saya akan menunjukkan contoh dengan nilai campuran.
Dapatkan bulan dan hari pertama tahun tertentu
new Date(2011, 0); // Normal behavior as months in this case are zero based.
=> // Sat Jan 01 2011 00:00:00 GMT-0700 (MST)
Dapatkan bulan dan hari terakhir dalam setahun
new Date((2011 + 1), 0, 0); // The second zero roles back one day into the previous month's last day.
=> // Sat Dec 31 2011 00:00:00 GMT-0700 (MST)
Contoh Angka, argumen String. Perhatikan bulan adalah Maret karena bulan berbasis nol lagi.
new Date(2011, "02");
=> // Tue Mar 01 2011 00:00:00 GMT-0700 (MST)
Jika kita melakukan hal yang sama tetapi dengan hari nol, kita mendapatkan sesuatu yang berbeda.
new Date(2011, "02", 0); // again the zero roles back from March to the last day of February.
=> // Mon Feb 28 2011 00:00:00 GMT-0700 (MST)
Menambahkan hari nol ke argumen tahun dan bulan apa pun akan mendapatkan hari terakhir bulan sebelumnya. Jika Anda melanjutkan dengan angka negatif, Anda dapat terus melanjutkan kembali di lain hari
new Date(2011, "02", -1);
=> // Sun Feb 27 2011 00:00:00 GMT-0700 (MST)