Saya memiliki dua tanggal input yang diambil dari kontrol Date Picker. Saya telah memilih tanggal mulai 2/2/2012 dan tanggal akhir 2/7/2012. Saya telah menulis kode berikut untuk itu.
Saya harus mendapatkan hasil sebagai 6 tetapi saya mendapatkan 5.
function SetDays(invoker) {
var start = $find('<%=StartWebDatePicker.ClientID%>').get_value();
var end = $find('<%=EndWebDatePicker.ClientID%>').get_value();
var oneDay=1000 * 60 * 60 * 24;
var difference_ms = Math.abs(end.getTime() - start.getTime())
var diffValue = Math.round(difference_ms / oneDay);
}
Adakah yang bisa memberitahu saya bagaimana saya bisa mendapatkan perbedaan yang tepat?
javascript
Vaibhav Deshmukh
sumber
sumber
Jawaban:
http://momentjs.com/ atau https://date-fns.org/
Dari Momen docs:
atau untuk memasukkan awal:
Ketukan mengotak-atik cap waktu dan zona waktu secara manual.
Tergantung pada kasus penggunaan khusus Anda, Anda dapat melakukannya
a/b.startOf('day')
dan / ataua/b.endOf('day')
untuk memaksa diff untuk menjadi inklusif atau eksklusif di "ujung" (seperti yang disarankan oleh @kotpal di komentar).true
untuk mendapatkan diff titik mengambang yang Anda bisaMath.floor
,Math.ceil
atauMath.round
sesuai kebutuhan.'seconds'
alih-alih'days'
lalu membaginya dengan24*60*60
.sumber
Math.abs(a.diff(b, 'days'))+1
startOf
saat ini bermutasi. Jika Anda tidak menginginkannya, maka lakukanlaha.clone().startOf('day').diff(b.clone().startOf('day'))
.Jika Anda menggunakan moment.js, Anda dapat melakukannya dengan mudah.
Jika Anda ingin menemukan perbedaan antara tanggal yang diberikan dan tanggal saat ini dalam jumlah hari (mengabaikan waktu), pastikan untuk menghapus waktu dari objek saat dari tanggal saat ini seperti di bawah ini
Untuk menemukan perbedaan antara tanggal yang diberikan dan tanggal saat ini dalam jumlah hari
sumber
current.diff(given, 'days')
jadi itu mengumpulkan.1
hilangMencoba:
sumber
Coba ini Menggunakan moment.js (Cukup mudah untuk menghitung operasi tanggal dalam javascript)
firstDate.diff (secondDate, 'days', false); // true | false untuk nilai pecahan
Hasil akan memberi Anda jumlah hari dalam bilangan bulat.
sumber
Anda juga dapat menggunakan kode ini: moment ("yourDateHere", "YYYY-MM-DD"). FromNow (). Ini akan menghitung perbedaan antara hari ini dan tanggal yang Anda berikan.
sumber
Ini bekerja untuk saya:
sumber
Saya membuat fungsi yang dapat digunakan kembali dengan cepat di ES6 menggunakan Moment.js.
sumber
MVC saya punya dua input teks 1: jumlah hari 2: datetime picker
javascipt
untuk menghitung angka dari penggunaan tanggal
untuk menghitung jumlah hari antara dua tanggal digunakan
jangan lupa untuk menambahkan http://momentjs.com/
sumber