Jeśli mam dwie daty, w jaki sposób mogę użyć JavaScript, aby uzyskać różnicę między nimi w minutach?
javascript
datetime
Jan
źródło
źródło
Odpowiedzi:
Możesz sprawdzić ten kod:
lub
var diffMins = Math.floor((...
odrzucić sekundy, jeśli nie chcesz zaokrąglać minut.źródło
Math.round(((diffMs % 86400000) % 3600000) / 60000);
nie działa, gdy różnica jest większa niż 60 minutOdejmowanie 2 obiektów Date daje różnicę w milisekundach, np .:
Math.abs
jest używany, aby móc użyć różnicy bezwzględnej (więcnew Date('2011/10/09 00:00') - new Date('2011/10/09 12:00')
daje ten sam wynik).Dzieląc wynik przez 1000, otrzymujesz liczbę sekund. Dzieląc to przez 60, otrzymujesz liczbę minut. Aby zaokrąglić do całych minut, użyj
Math.floor
lubMath.ceil
:W tym przykładzie wynikiem będzie 720
źródło
(Math.floor(seconds/60))+':'+((seconds/60)%60)
jeśli potrzebujesz też pozostałych sekundnew Date(string)
z formatem innym niż ciąg formatu ISO-8601. Zobacz Dlaczego Date.parse daje nieprawidłowe wyniki? lub po prostu użyj liczb (np.new Date(2011, 9, 9, 12, 0, 0)
pamiętaj tylko, że miesiące są oparte na 0).źródło
new Date(string)
z formatem innym niż ciąg formatu ISO-8601. Zobacz Dlaczego Date.parse daje nieprawidłowe wyniki? lub po prostu użyj liczb (np.new Date(2011, 9, 9, 12, 0, 0)
pamiętaj tylko, że miesiące są oparte na 0).Prosta funkcja do wykonania tego obliczenia:
źródło
To powinno pokazać różnicę między dwiema datami w minutach. Wypróbuj w swojej przeglądarce:
źródło
(currDate.getTime() - oldDate.getTime()) / 60000
Dla tych, którzy lubią pracować z małymi liczbami
źródło
Ten problem można łatwo rozwiązać za pomocą pliku moment.js, na przykład:
var difference = mostDate.diff(minorDate, "minutes");
Drugi parametr można zmienić na inne parametry, patrz dokumentacja moment.js.
np. „dni”, „godziny”, „minuty” itp.
http://momentjs.com/docs/
CDN for moment.js jest dostępny tutaj:
https://cdnjs.com/libraries/moment.js
Dzięki.
EDYTOWAĆ:
MostDate i minorDate powinny być typu momentu.
źródło
Oto trochę zabawy podczas rozwiązywania czegoś podobnego w węźle.
Możesz zobaczyć to w akcji pod adresem https://repl.it/@GioCirque/TimeSpan-Formatting
źródło
Poniższy kod zadziałał dla mnie,
źródło
Możesz wykonać następujące czynności:
difference of dates
(różnica będzie w milisekundach)milliseconds
naminutes
npms/1000/60
Kod:
źródło