cari

Rumah  >  Soal Jawab  >  teks badan

Bandingkan objek Tarikh JavaScript

<p>Apabila membandingkan objek tarikh dalam JavaScript, saya mendapati ia tidak kembali benar walaupun apabila membandingkan tarikh yang sama. </p> <pre class="brush:php;toolbar:false;">var startDate1 = new Date("02/10/2012"); var startDate2 = new Date("01/10/2012"); var startDate3 = new Date("01/10/2012"); alert(startDate1>startDate2); alert(startDate2==startDate3); //false</pre> <p>Bagaimanakah saya membandingkan tarikh ini untuk kesaksamaan? Saya mahu menggunakan objek Tarikh JavaScript asli dan bukannya pustaka pihak ketiga kerana tidak sesuai menggunakan pustaka JavaScript pihak ketiga hanya untuk membandingkan tarikh. </p>
P粉724737511P粉724737511489 hari yang lalu543

membalas semua(2)saya akan balas

  • P粉794177659

    P粉7941776592023-08-04 15:33:36

    Banding tarikh menggunakan kaedah getTime(), yang mengembalikan bilangan milisaat sejak zaman (iaitu nombor) untuk perbandingan:

    var startDate1 = new Date("02/10/2012");
    var startDate2 = new Date("01/10/2012");
    var startDate3 = new Date("01/10/2012");
    alert(startDate1.getTime() > startDate2.getTime()); // true
    alert(startDate2.getTime() == startDate3.getTime()); //true

    Selain itu, pertimbangkan untuk menggunakan nombor tahun/bulan/hari yang jelas untuk membina objek Tarikh dan bukannya bergantung pada perwakilan rentetan (lihat: Date.parse()). Dan ingat, tarikh dalam JavaScript sentiasa diwakili menggunakan zon waktu (pelayar) pelanggan.

    balas
    0
  • P粉990568283

    P粉9905682832023-08-04 12:15:10

    Ini kerana dalam kes kedua, objek tarikh sebenar dibandingkan dan kedua-dua objek tidak pernah sama. Hantar mereka ke nombor:

    alert( +startDate2 == +startDate3 ); // true

    Jika anda ingin menukarnya kepada nombor dengan lebih jelas, anda boleh menggunakan salah satu kaedah berikut:

    alert( startDate2.getTime() == startDate3.getTime() ); // true

    o atau

    alert( Number(startDate2) == Number(startDate3) ); // true

    ialah rujukan kepada §11.9.3 Algoritma Perbandingan Kesamaan Abstrak spesifikasi, pada asasnya ia mengatakan bahawa apabila membandingkan objek, ia adalah benar hanya jika obj1 == obj2 merujuk kepada objek yang sama, jika tidak, hasilnya adalah palsu.

    balas
    0
  • Batalbalas