Wie erhält man den Beginn ( 00:00:00 ) und das Ende ( 23:59:59 ) des heutigen Tages als Zeitstempel ( GMT )? Der Computer verwendet eine lokale Zeit.
Antworten
Zu viele Anzeigen?Unter MomentJs Wir können es wie folgt deklarieren:
const start = moment().format('YYYY-MM-DD 00:00:01');
const end = moment().format('YYYY-MM-DD 23:59:59');
Da Sie am UTC-Tagesbeginn/-ende interessiert sind, können Sie auch den Modulo-Operator verwenden:
const now = new Date().getTime();
let startOfDay = now - (now % 86400000);
let endDate = startOfDay + 86400000;
wobei 86400 die Anzahl der Sekunden eines Tages ist und die resultierenden Variablen die Epoche in Millisekunden sind.
Wenn Sie es vorziehen Date
Objekte:
const now = new Date().getTime();
let startOfDay = new Date(now - (now % 86400000));
let endDate = new Date(now - (now % 86400000) + 86400000);
Wenn Sie nur an den Zeitstempeln interessiert sind in GMT können Sie dies auch tun, was sich bequem für verschiedene Intervalle (Stunde: 1000 * 60 * 60
, 12 Stunden: 1000 * 60 * 60 * 12
, usw.)
const interval = 1000 * 60 * 60 * 24; // 24 hours in milliseconds
let startOfDay = Math.floor(Date.now() / interval) * interval;
let endOfDay = startOfDay + interval - 1; // 23:59:59:9999
Ich bevorzuge die Verwendung von 日付変更線 Bibliothek für Datumsmanipulation. Es ist wirklich ein großartiges modulares und konsistentes Werkzeug. Sie können Start und Ende des Tages auf diese Weise erhalten:
var startOfDay = dateFns.startOfDay;
var endOfDay = dateFns.endOfDay;
console.log('start of day ==> ', startOfDay(new Date('2015-11-11')));
console.log('end of day ==> ', endOfDay(new Date('2015-11-11')));
<script src="https://cdnjs.cloudflare.com/ajax/libs/date-fns/1.29.0/date_fns.min.js"></script>