Jak rozpocząć (00:00:00) i zakończyć (23:59:59) dzisiejszego czasu (GMT)? Komputer korzysta z czasu lokalnego.
javascript
Bdfy
źródło
źródło
var end = new Date(start.getTime());
aby upewnić się, że masz ten sam punkt w czasie - w przypadku zmiany daty między początkową i końcową inicjalizacją - może się zdarzyć - po prostu dobry nawyk, aby się w to włączyćsetUTCHours
setHours
setHours
jest niebezpieczne, ponieważ ustawia godziny lokalne zamiast godzin UTC.Korzystając z biblioteki momentjs , można to osiągnąć za pomocą metod
startOf()
iendOf()
dla obiektu bieżącej daty momentu, przekazując ciąg'day'
jako argumenty:Lokalny GMT:
Dla UTC:
źródło
.toDate()
w końcu powinniśmy skorzystać z tej daty.var end = moment().endOf('day').toDate();
.unix()
na końcu, aby uzyskać znacznik czasu unix w kilka sekund :) tak:moment().startOf('day').unix()
moment(new Date()).endOf("day");
nie działa, alemoment().endOf("day");
działa.moment-timezone
i to zrobić:moment().tz('America/Chicago').startOf('day').toDate()
.Korzystając z biblioteki luxon.js , to samo można osiągnąć za pomocą metod startOf i endOf, przekazując parametr „day” jako parametr
i można zapytać, dlaczego nie moment.js , odpowiedź jest tu za to.
źródło
W MomentJs możemy to zadeklarować w następujący sposób:
źródło
Jeśli interesują Cię tylko znaczniki czasu w GMT, możesz to również zrobić, które można wygodnie dostosować do różnych interwałów (godzina:,
1000 * 60 * 60
12 godzin:1000 * 60 * 60 * 12
itd.)źródło
FYI (połączona wersja Tvanfosson)
// jak używać
* ma zastosowanie do typu czasu natychmiastowego w Javie 8, który automatycznie konwertuje czas lokalny w zależności od regionu (jeśli planujesz napisać aplikację globalną)
źródło
Wolę używać biblioteki date-fns do manipulowania datami. To naprawdę świetne modułowe i spójne narzędzie. Możesz zacząć i zakończyć dzień w ten sposób:
źródło