Mam pole na siatce zawierającej datę/czas i potrzebuję znać różnicę między tą a bieżącą datą/czasem. Jaki może być najlepszy sposób na zrobienie tego?Jak odjąć datę/czas w javascript?
Odpowiedz
To daje różnicę między dwiema datami, w milisekundach
var diff = Math.abs(date1 - date2);
W przykładzie byłoby
var diff = Math.abs(new Date() - compareDate);
Musisz upewnić się, że compareDate
jest poprawnym Date
przedmiot .
Coś jak to prawdopodobnie będzie działać dla ciebie
var diff = Math.abs(new Date() - new Date(dateStr.replace(/-/g,'/')));
tj obracając "2011-02-07 15:13:06"
do new Date('2011/02/07 15:13:06')
, który jest formatem konstruktor Date
może pojąć.
to ignoruje obsługę DTS dla lokalnej strefy czasowej (działa dobrze z UTC) –
w TypeScript Otrzymuję błąd tslint, gdy próbuję to zrobić: var diff = Math.abs (new Date() - compareDate); – Devid
Możesz po prostu odjąć dwa obiekty z datami.
var d1 = new Date(); //"now"
var d2 = new Date("2011/02/01") // some date
var diff = Math.abs(d1-d2); // difference in milliseconds
getTime()
można użyć metody konwersji Date
liczby milisekund od 1 stycznia 1970. Następnie można łatwo wykonywać żadnych operacji arytmetycznych z datami. Oczywiście możesz przekonwertować numer z powrotem na Date
z setTime()
. Zobacz przykład: here.
Jeśli chcesz uzyskać różnicę w zegarze ściennym, lokalnej strefie czasowej i przy oświetleniu dziennym.
Date.prototype.diffDays = function (date: Date): number {
var utcThis = Date.UTC(this.getFullYear(), this.getMonth(), this.getDate(), this.getHours(), this.getMinutes(), this.getSeconds(), this.getMilliseconds());
var utcOther = Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds());
return (utcThis - utcOther)/86400000;
};
testu
it('diffDays - Czech DST', function() {
// expect this to parse as local time
// with Czech calendar DST change happened 2012-03-25 02:00
var pre = new Date('2012/03/24 03:04:05');
var post = new Date('2012/03/27 03:04:05');
// regardless DST, you still wish to see 3 days
expect(pre.diffDays(post)).toEqual(-3);
});
Diff minuty i sekundy w ten sam sposób.
Jeśli nie odejmujesz dat od tego samego klienta przeglądarki i nie interesują cię przypadki zbędne, takie jak zmiany czasu oszczędzania dziennego, prawdopodobnie lepiej jest użyć narzędzia moment.js, które oferuje zaawansowane zlokalizowane interfejsy API. Na przykład, to jest to, co mam w moim utils.js:
subtractDates: function(date1, date2) {
return moment.subtract(date1, date2).milliseconds();
},
millisecondsSince: function(dateSince) {
return moment().subtract(dateSince).milliseconds();
},
- 1. Jak odjąć od datetime?
- 2. Jak odjąć minuty
- 3. Jak odjąć tabele sql?
- 4. Jak odjąć godziny od NSDate?
- 5. Jak odjąć dwa jury datetimes?
- 6. Jak odjąć od wartości słowników
- 7. Jak odjąć tablicę od tablicy?
- 8. Jak odjąć rok od datetime?
- 9. Jak mogę odjąć poprzedni wiersz w sql?
- 10. Jak mogę odjąć dwa ciągi w pythonie?
- 11. Jak odjąć dwie listy w python
- 12. Jak odjąć tablicę wielowymiarową w Pythonie?
- 13. Jak odjąć dwie daty w Django/Pythonie?
- 14. Java odjąć Localtime
- 15. Jak odjąć dwie zmienne daty angularjs
- 16. Jak odjąć miesiąc od obiektu Date?
- 17. Jak odjąć/dodać dni od/do daty?
- 18. Jak odjąć 4 miesiące od dzisiejszej daty?
- 19. SQL Server 2005: Jak odjąć 6 miesięcy
- 20. Jak odjąć wektor z każdego rzędu macierzy?
- 21. odjąć lat z kolumny datetime w pand
- 22. Jak odjąć jedną z każdej wartości w kodzie w Pythonie?
- 23. Dlaczego odjąć pusty wskaźnik w offsetof()?
- 24. Jaki typ odjąć 2 size_t's?
- 25. MySQL odjąć dwie kolumny count
- 26. Jak odjąć pierwszy wpis z ostatniego wpisu w zgrupowanych danych
- 27. Jak odjąć wynik kwerendy z innego wyniku zapytania w MySQL
- 28. Jak odjąć sekundę od DateTime w Windows Phone 7?
- 29. Jak odjąć jeden tydzień od tej daty w jquery?
- 30. Jak odjąć mikrotime i wyświetlić datę z milisekundami w php?
Jaki jest format daty/czasu? –
jest przechowywany w ten sposób "2011-02-07 15:13:06" –
To nie jest duplikat. Ma inne rozwiązanie i jest wyjaśnione znacznie lepiej. Ma również lepszą pozycję w rankingu. – 3Dom