Lebih
Membandingkan dua tanggal dengan JavaScript
Seseorang dapat menyarankan cara untuk membandingkan nilai-nilai tanggal lebih besar dari, kurang dari, dan bukan di masa lalu menggunakan JavaScript? Nilai yang akan datang dari kotak teks.
1767
36
Tombol Upload objek akan melakukan apa yang anda ingin membangun satu untuk setiap tanggal, kemudian membandingkan mereka dengan menggunakan
>
,<
,<=
atau>=
.Yang
==
,!=
,===
, dan!==
operator akan meminta anda untuk menggunakantanggal.getTime()
seperti dalamuntuk menjadi jelas hanya memeriksa kesetaraan langsung dengan benda-benda tanggal won't bekerja
Saya sarankan anda menggunakan drop-down atau mirip terkendala bentuk tanggal entri daripada kotak teks, meskipun, atau anda akan menemukan diri anda dalam validasi input neraka.
Cara termudah untuk membandingkan tanggal di javascript adalah dengan terlebih dahulu mengubahnya menjadi objek Tanggal dan kemudian membandingkan tanggal-benda.
Di bawah ini anda dapat menemukan objek dengan tiga fungsi:
Mengembalikan nomor:
-1 jika a < b
0 jika a = b
1 jika a > b
NaN jika a atau b adalah ilegal upload
tanggal.inRange (d,awal,akhir)
Mengembalikan boolean atau NaN:
benar jika d antara mulai dan end (inklusif)
false jika d sebelum mulai atau setelah end.
NaN jika satu atau lebih dari tanggal yang ilegal.
tanggal.mengkonversi
Digunakan oleh fungsi-fungsi lainnya untuk mengkonversi masukan mereka ke objek tanggal. Input dapat
.
Membandingkan
<
dan>
hanya seperti biasa, tapi apa pun yang melibatkan=
harus menggunakan+
awalan. Seperti:Harap ini membantu!
Relational operator
<
<=
>
>=
dapat digunakan untuk membandingkan JavaScript tanggal:Namun, kesetaraan operator
==
!=
===
!==
tidak dapat digunakan untuk membandingkan (nilai) tanggal karena:Anda dapat membandingkan nilai tanggal untuk kesetaraan menggunakan salah satu metode ini:
Kedua
Tanggal.getTime()
danTanggal.valueOf()
mengembalikan jumlah milidetik sejak 1 januari 1970, 00:00 UTC. KeduaNomor
fungsi dan unary+
operator sebutvalueOf()
metode di belakang layar.Sejauh ini, cara termudah adalah dengan mengurangi tanggal satu dari yang lain dan bandingkan hasilnya.
Membandingkan tanggal dalam JavaScript adalah cukup mudah... JavaScript built-in perbandingan sistem tanggal yang membuatnya begitu mudah untuk melakukan perbandingan...
Hanya ikuti langkah-langkah berikut untuk membandingkan 2 tanggal nilai, misalnya anda memiliki 2 input yang masing-masing memiliki sebuah nilai Tanggal di
String
dan anda untuk membandingkan mereka...1. anda memiliki 2 nilai string yang anda dapatkan dari input dan anda'd seperti untuk membandingkan mereka, mereka adalah sebagai berikut:
2. Yang mereka butuhkan untuk menjadi
Objek Tanggal
dapat dibandingkan sebagai nilai-nilai tanggal, jadi hanya mengkonversi mereka untuk saat ini, menggunakannew Date()
, saya hanya re-menetapkan mereka untuk mempermudah penjelasan, tetapi anda dapat melakukannya anda seperti:3. Sekarang hanya membandingkan mereka, menggunakan
>
<
>=
<=
Bandingkan hari saja (mengabaikan komponen waktu):
Penggunaan:
format apa?
Jika anda membangun sebuah Javascript objek Tanggal, anda hanya dapat mengurangi mereka untuk mendapatkan milidetik perbedaan (edit: atau hanya membandingkan mereka) :
JAWABAN SINGKAT
Berikut adalah fungsi yang mengembalikan {boolean} jika dari dateTime > untuk dateTime [Demo dalam aksi][1]
Penjelasan
[jsFiddle ][2]
karena anda sekarang memiliki kedua datetime dalam jumlah jenis anda dapat membandingkan mereka dengan operasi Perbandingan
( >, < ,= ,!= ,== ,!== ,>= DAN <=)
Kemudian
jika anda sudah familiar dengan
C#
Kustom Tanggal dan Waktu Format String perpustakaan ini harus melakukan hal yang sama dan membantu anda format tanggal dan waktu dtmFRM apakah anda lewat di tanggal waktu string atau format unixPenggunaan ****
[DEMO][4]
semua yang harus anda lakukan adalah melewati salah satu format ditenangkan di perpustakaan `js file
anda menggunakan kode ini,
Dan juga cek link ini http://www.w3schools.com/js/js_obj_date.asp
Note - Bandingkan Hanya Upload Bagian:
Ketika kita membandingkan dua tanggal di javascript. Dibutuhkan jam, menit, dan detik juga menjadi pertimbangan.. Jadi Jika kita hanya perlu membandingkan upload hanya, ini adalah pendekatan:
Sekarang:
jika date1.valueOf()> date2.valueOf()
akan bekerja seperti pesona.Hanya untuk menambah lagi kemungkinan untuk banyak pilihan yang ada, anda bisa mencoba:
...yang tampaknya bekerja untuk saya. Tentu saja anda harus memastikan bahwa kedua tanggal tersebut tidak terdefinisi...
Dengan cara ini kita dapat memastikan bahwa yang positif dibandingkan jika keduanya tidak terdefinisi juga, atau...
...jika anda lebih suka mereka tidak sama.
Melalui Moment.js
Jsfiddle: http://jsfiddle.net/guhokemk/1/
Metode yang mengembalikan 1 jika
dateTimeA
lebih besar daridateTimeB
Method ini mengembalikan 0 jika
dateTimeA
sama dengandateTimeB
Metode ini menghasilkan -1 jika
dateTimeA
kurang daridateTimeB
HATI-HATI TIMEZONE
Javascript saat ini telah tanpa gagasan timezone. It's a moment in time (kutu sejak zaman) dengan fungsi berguna untuk menerjemahkan ke dan dari string di "lokal" timezone. Jika anda ingin bekerja dengan menggunakan tanggal upload benda-benda, seperti semua orang di sini adalah melakukan, anda ingin anda untuk mewakili UTC tengah malam di mulai dari tanggal tersebut. Ini adalah umum dan perlu konvensi yang memungkinkan anda bekerja dengan tanggal terlepas dari musim atau zona waktu dari penciptaan mereka. Jadi anda harus sangat waspada untuk mengelola gagasan zona waktu, terutama ketika anda membuat tengah malam UTC Tanggal obyek.
Sebagian besar waktu, anda akan ingin kencan anda untuk mencerminkan zona waktu dari pengguna. Klik jika hari ini adalah ulang tahun anda. Pengguna di NZ dan KITA klik pada waktu yang sama dan mendapatkan tanggal yang berbeda. Dalam hal ini, melakukan hal ini...
Kadang-kadang, internasional komparatif mengalahkan lokal akurasi. Dalam hal ini, melakukan hal ini...
Sekarang anda dapat langsung membandingkan benda-benda tanggal sebagai jawaban lain sarankan.
Setelah diambil dari perawatan untuk mengelola zona waktu ketika anda membuat, anda juga harus yakin untuk menjaga zona waktu ketika anda mengkonversi kembali ke representasi string. Jadi anda dapat dengan aman menggunakan...
toISOString()
getUTCxxx()
getTime() //mengembalikan nomor dengan tidak ada waktu atau timezone.
.toLocaleDateString("fr",{zona waktu:"UTC"}) // apapun lokal anda inginkan, tetapi SELALU UTC.
Dan benar-benar menghindari segala sesuatu yang lain, terutama...
getYear()
,getMonth()
,getDate()
Kurangi dua tanggal mendapatkan perbedaan dalam milidetik, jika anda mendapatkan
0
it's tanggal yang samaUntuk membandingkan dua tanggal yang bisa kita gunakan date.js library JavaScript yang dapat ditemukan di : https://code.google.com/archive/p/datejs/downloads
dan gunakan
Tanggal.membandingkan( Tanggal date1, Tanggal date2 )
metode dan kembali jumlah yang berarti hasil sebagai berikut:-1 = date1 adalah kurang date2.
0 = nilai yang sama.
1 = date1 lebih besar dari date2.
Dalam rangka untuk membuat tanggal dari teks bebas dalam Javascript yang anda butuhkan untuk mengurai menjadi Date() pada objek.
Anda bisa menggunakan Date.parse() yang mengambil teks bebas mencoba untuk mengubahnya menjadi sebuah tanggal baru tetapi jika anda memiliki kontrol atas halaman saya akan merekomendasikan menggunakan HTML pilih kotak atau bukan a date picker seperti YUI calendar control atau UI jQuery Datepicker.
Setelah anda memiliki kencan seperti orang lain telah menunjukkan anda dapat menggunakan aritmatika sederhana untuk mengurangi tanggal dan mengubahnya kembali menjadi jumlah hari dengan membagi jumlah (dalam detik) dengan jumlah detik dalam satu hari (606024 = 86400).
Cara sederhana ini,