Saya mencoba mendeteksi dengan Moment.js jika tanggal tertentu berada di antara dua tanggal. Sejak versi 2.0.0, Tim menambahkan isBefore()
dan isAfter()
untuk perbandingan tanggal.
Karena tidak ada isBetween()
metode, saya pikir ini akan berhasil:
var date = moment("15/02/2013", "DD/MM/YYYY");
var startDate = moment("12/01/2013", "DD/MM/YYYY");
var endDate = moment("15/01/2013", "DD/MM/YYYY");
if (date.isBefore(endDate)
&& date.isAfter(startDate)
|| (date.isSame(startDate) || date.isSame(endDate))
) {
alert("Yay!");
} else {
alert("Nay! :(");
}
Saya yakin pasti ada cara yang lebih baik untuk melakukan ini. Ada ide?
javascript
date
momentjs
Joel A. Villarreal Bertoldi
sumber
sumber
isBetween
||
isStart || isEnd
Jawaban:
Anda dapat menggunakan salah satu plugin momen -> rentang-momen untuk menangani rentang tanggal:
sumber
Di versi 2.9+ ada
isBetween
fungsi, tetapi eksklusif:Ada solusi yang inklusif ...
x.isBetween(a, b) || x.isSame(a) || x.isSame(b)
... yang secara logis setara dengan
!(x.isBefore(a) || x.isAfter(b))
Dalam versi 2.13 ,
isBetween
fungsi memiliki parameter opsional keempatinclusivity
,.Gunakan seperti ini:
Lebih banyak unit untuk dipertimbangkan:
years, months, days, hours, minutes, seconds, milliseconds
Catatan: unit masih opsional. Gunakan
null
sebagai argumen ketiga untuk mengabaikan unit yang dalam hal ini milidetik adalah perincian default.Kunjungi Dokumen Resmi
sumber
x.isBetween(moment(a).subtract(1, 'day'), b)
tampaknya melakukan triknya juga.!(x.isBefore(a) || x.isAfter(b))
exclusive
maksudnyaKamu bisa memakai
atau
Lihat di sini: http://momentjs.com/docs/#/query/
sumber
isBetween
membutuhkan momen 2.13.0. momentjs.com/docs/#/query/is-betweenSaya percaya itu
bekerja juga ...
sumber
Kabar baik semuanya, ada
isBetween
fungsinya! Perbarui perpustakaan Anda;)http://momentjs.com/docs/#/query/is-between/
sumber
isBetween
tidak inklusifmoment('2016-10-30').isBetween('2016-10-30', '2016-10-30', null, '[]'); //true
Silakan gunakan parameter ke-4 fungsi moment.isBetween (inklusivitas). Contoh:
sumber
secara logis sama dengan
yang menghemat beberapa baris kode dan (dalam beberapa kasus) pemanggilan metode.
Mungkin lebih mudah daripada menarik seluruh plugin jika Anda hanya ingin melakukan ini sekali atau dua kali.
sumber
Sesuai dokumentasi momen js,
Ada plugin Precise Range, yang ditulis oleh Rob Dawson, dapat digunakan untuk menampilkan representasi rentang tanggal / waktu yang tepat dan dapat dibaca manusia, url: http://codebox.org.uk/pages/moment-date-range-plugin
sumber