Saya mencoba menggunakan momentjs
untuk memeriksa apakah tanggal yang diberikan adalah hari ini atau di masa depan.
Inilah yang saya miliki sejauh ini:
<script type="text/javascript" src="http://momentjs.com/downloads/moment.min.js"></script>
<script type="text/javascript">
var SpecialToDate = '31/01/2014'; // DD/MM/YYYY
var SpecialTo = moment(SpecialToDate, "DD/MM/YYYY");
if (moment().diff(SpecialTo) > 0) {
alert('date is today or in future');
} else {
alert('date is in the past');
}
</script>
Kode mengevaluasi tanggal saya (31 Januari 2014) sebagai tanggal di masa lalu.
Adakah yang saya tahu salah?
moment().diff(SpecialToDate)
akan langsung memberikan perbedaan dalam milidetik.'days'
tidak dibutuhkan. Ini akan berfungsi untuk semua skenario. SpecialToDate bisa'2018-10-26 00:00:00'
sebagai contoh.Anda dapat menggunakan
isSame
fungsi ini:sumber
startTime
? Objek kencan tidak memilikiisSame
metode ...sumber
Karena belum ada yang menyebutkannya, cara paling sederhana untuk memeriksa apakah objek tanggal Momen ada di masa lalu:
Atau di masa depan:
Biarkan args kosong - itu akan menjadi default sekarang.
Ada juga
isSameOrAfter
danisSameOrBefore
.NB faktor-faktor ini dalam waktu. Jika Anda hanya peduli hari itu, lihat jawaban Dipendu .
sumber
momentObj
contoh saya adalah contoh dari tanggal saat. Dokumen secara khusus berbicara tentang membuat contoh baru (waktu sekarang) dan kemudian memeriksa apakah itu di masa lalu, dalam satu pernyataan. Saya tidak menyarankan Anda melakukanmoment().isBefore()
yang sama sekali tidak ada gunanya - mengapa Anda memeriksa apakah sekarang di masa lalu (atau masa depan)?Anda dapat menggunakan
isAfter()
fungsi kueri momentjs:Periksa apakah ada momen setelah momen lain.
Jika Anda ingin membatasi granularity ke unit selain milidetik, berikan unit sebagai parameter kedua.
http://momentjs.com/docs/#/query/is-after/
sumber
invert isBefore metode saat untuk memeriksa apakah tanggal sama dengan hari ini atau di masa depan seperti ini:
sumber
Kalau-kalau ada orang lain yang membutuhkan ini, lakukan saja ini:
atau jika Anda menginginkan suatu fungsi:
Di mana tanggal adalah tanggal yang ingin Anda periksa.
Penjelasan
moment(0, "HH")
mengembalikan hari ini pada tengah malam.date1.diff(date2, "days")
mengembalikan jumlah hari antara date1 dan date2.Memperbarui
Sejak itu saya telah menemukan fungsi isSame , yang menurut saya adalah fungsi yang benar untuk digunakan untuk mencari tahu jika kencan hari ini:
sumber
Untuk memeriksa apakah hari ini :
Jika kita membandingkan dua tanggal yang berisi juga informasi waktu
isSame
jelas akan gagal.diff
akan gagal jika dua tanggal span selama hari yang baru:Saya pikir cara terbaik, meskipun tidak cepat dan pendek, adalah sebagai berikut:
Untuk memeriksa apakah di masa mendatang :
Seperti yang disarankan juga oleh pengguna lain,
diff
metode ini berfungsi.sumber
Jika Anda hanya perlu tahu mana yang lebih besar, Anda juga dapat membandingkannya secara langsung:
Semoga ini membantu!
sumber
jika firstDate sama atau setelah (masa depan) secondDate mengembalikan true else mengembalikan false. Toda adalah firstDate = Tanggal baru ();
Ada isSame, isBefore dan isAfter untuk hari membandingkan contoh saat;
sumber
Gunakan yang paling sederhana untuk memeriksa tanggal di masa depan
sumber
Dan kemudian gunakan saja baris ini:
sumber
Pilih kemarin untuk memeriksa hari terakhir atau tidak dengan bantuan
moment().subtract(1, "day");
Referensi: - http://momentjs.com/docs/#/manipulating/subtract/
sumber
Jika kami menginginkan perbedaan tanpa waktu Anda dapat memperoleh tanggal yang berbeda (hanya tanggal tanpa waktu) seperti di bawah ini, menggunakan format momen.
Seperti, saya menghadapi masalah dengan perbedaan saat melakukan;
Jadi, muncul dengan mengikuti;
const dateValidate = moment(moment().format('YYYY-MM-DD')).diff(moment([YOUR SELECTED DATE HERE]).format('YYYY-MM-DD'))
Silakan berkomentar jika ada yang perlu diperbaiki.
Terima kasih,
sumber
Saya menginginkannya untuk hal lain tetapi akhirnya menemukan trik yang dapat Anda coba
somedate.calendar(compareDate, { sameDay: '[Today]'})=='Today'
sumber
periksa dengan berikut:
itu kembali dalam hitungan detik ..
Jika akan memeriksa kondisi 2 menit maka
sumber
Jawaban paling sederhana adalah:
Ini akan memeriksa dengan nilai tengah malam dan akan mengembalikan hasil yang akurat. Ini akan bekerja juga ketika perbedaan waktu antara dua tanggal juga kurang dari 24 jam.
sumber