Baru-baru ini saya mengalami masalah, yaitu ketika mendapatkan tanggal dalam formulir dan mengirimkannya ke latar belakang melalui json, fungsi Date.parse(str) melaporkan kesalahan di bawah ff: NAN
Setelah mencari beberapa informasi, saya menemukan bahwa fungsi Date.parse() memiliki persyaratan untuk format tanggal: silakan lihat fungsi Date.parse untuk detailnya.
Untuk tanggal operasi js:
Buat objek tanggal:
var objDate=Tanggal baru([daftar argumen]);
Ada lima jenis formulir parameter:
Copy kode kodenya sebagai berikut:
view plainnew Date("tanggal bulan,tttt jj:mm:ss");
Tanggal baru("tanggal bulan,tttt");
Tanggal baru(tttt,bln,hh,hh,mm,ss);
Tanggal baru(tttt,bln,hh);
Tanggal baru(md);
menjelaskan:
bulan: Menunjukkan nama bulan dalam bahasa Inggris, dari Januari hingga Desember
bln: mewakili bulan sebagai bilangan bulat, dari 0 (Januari) hingga 11 (Desember)
Isi
dd: menunjukkan hari dalam sebulan, dari 1 hingga 31
yyyy: tahun empat digit
jj: jam, dari 0 (tengah malam) hingga 23 (11 malam)
mm: Menit, bilangan bulat dari 0 hingga 59
ss: detik, bilangan bulat dari 0 hingga 59
ms: milidetik, bilangan bulat yang lebih besar atau sama dengan 0, menunjukkan jumlah milidetik antara waktu yang akan dibuat dan 1 Januari 1970 waktu GMT.
Apa yang saya temukan:
Konstruksi tanggal dalam Javascript juga dapat mendukung new Date("yyyy/MM/dd"); di mana: MM adalah bilangan bulat yang mewakili bulan dari 0 (Januari) hingga 11 (Desember), sehingga sangat nyaman untuk menggunakan ekspresi reguler Kemampuan untuk mengonversi tanggal string.
Kode tes:
Copy kode kodenya sebagai berikut:
<mce:script type="teks/javascript"><!--
document.write("<br/>" + Tanggal baru("3 Februari 2009"));
document.write("<br/>" + Tanggal baru("3 Februari 2009 10:52:03"));
dokumen.write("<br/>");
document.write("<br/>" + Tanggal baru(2009,1,3));
document.write("<br/>" + Tanggal baru(2009,1,3,10,52,03));
dokumen.write("<br/>");
document.write("<br/>" + Tanggal baru(Tanggal.parse("3 Februari 2009")));
document.write("<br/>" + new Date(Date.parse("3 Februari 2009 10:52:03")));
document.write("<br/>" + Tanggal baru(Tanggal.parse(2009,1,3))); //Keluaran: NAN
document.write("<br/>" + Tanggal baru(Tanggal.parse(2009,1,3,10,52,03))); //Keluaran: NAN
document.write("<br/>" + Tanggal baru(Tanggal.parse("2009/02/03")));
dokumen.write("<br/>");
document.write("<br/>" + Tanggal baru("2009/02/03"));
document.write("<br/>" + Tanggal baru("2009/02/03 11:12:13"));
document.write("<br/>" + Tanggal baru("03-02-2009")); //Keluaran: NAN
// --></mce:skrip>
Hasil keluaran:
Sel 3 Februari 00:00:00 UTC+0800 2009
Sel 3 Februari 10:52:03 UTC+0800 2009
Sel 3 Februari 00:00:00 UTC+0800 2009
Sel 3 Februari 10:52:03 UTC+0800 2009
Sel 3 Februari 00:00:00 UTC+0800 2009
Sel 3 Februari 10:52:03 UTC+0800 2009
Tidak
Tidak
Sel 3 Februari 00:00:00 UTC+0800 2009
Sel 3 Februari 00:00:00 UTC+0800 2009
Sel 3 Februari 11:12:13 UTC+0800 2009
Tidak
-------------------
Copy kode kodenya sebagai berikut:
jendela.onload=fungsi(){
var dependenVal="2005-3-4";
//Konversikan ke tanggal berdasarkan string tanggal
var regEx = RegExp baru("//-","gi");
dependedVal=dependedVal.replace(regEx,"/");
//dependedVal=dependedVal.replace("//-","/");//Ini tidak berhasil
peringatan (dependedVal)
//parse memerlukan format 2005/3/4
var milidetik=Tanggal.parse(dependedVal);
waspada (milidetik)
var dependenDate=Tanggal baru();
dependenDate.setTime(milidetik);
var sekarang = Tanggal baru();
//Perhatikan tanda kurung, masalah prioritas, ketidakberdayaan
alert("Jumlah tahun yang terpisah:"+(now.getFullYear() - dependenDate.getFullYear()));
}
Faktanya, tanggal harus dikirimkan antara browser dan server melalui nilai milidetik, jika tidak, kesalahan 400 akan dilaporkan!