Antworten:
var start = new Date();
start.setHours(0,0,0,0);
var end = new Date();
end.setHours(23,59,59,999);
alert( start.toUTCString() + ':' + end.toUTCString() );
Wenn Sie die UTC-Zeit von diesen erhalten möchten, können Sie verwenden UTC().
setUTCHoursanstelle von setHoursUniversal Time zu verwenden
setHoursist gefährlich, da die lokalen Stunden anstelle der UTC-Stunden festgelegt werden.
Mit der Bibliothek momentjs kann dies mit den Methoden startOf()und endOf()für das aktuelle Datumsobjekt des Moments erreicht werden, wobei die Zeichenfolge 'day'als Argumente übergeben wird:
Lokale GMT:
var start = moment().startOf('day'); // set to 12:00 am today
var end = moment().endOf('day'); // set to 23:59 pm today
var start = moment.utc().startOf('day');
var end = moment.utc().endOf('day');
.toDate()am Ende verwenden, um das Datum zu erhalten. var end = moment().endOf('day').toDate();
.unix()am Ende hinzu, um einen Unix-Zeitstempel in Sekunden zu erhalten :) wie moment().startOf('day').unix()
moment(new Date()).endOf("day");funktioniert nicht, aber moment().endOf("day");es funktioniert.
moment-timezoneund tun : moment().tz('America/Chicago').startOf('day').toDate().
Mit der Bibliothek luxon.js kann dasselbe mit den Methoden startOf und endOf erreicht werden, indem der Parameter 'day' übergeben wird
var DateTime = luxon.DateTime;
DateTime.local().startOf('day').toUTC().toISO(); //2017-11-16T18:30:00.000Z
DateTime.local().endOf('day').toUTC().toISO(); //2017-11-17T18:29:59.999Z
DateTime.fromISO(new Date().toISOString()).startOf('day').toUTC().toISO(); //2017-11-16T18:30:00.000Z
Entfernen Sie .toUTC (), wenn Sie nur die Ortszeit benötigen
und Sie können fragen, warum nicht moment.js , Antwort ist hier dafür.
In MomentJs können wir es wie folgt deklarieren:
const start = moment().format('YYYY-MM-DD 00:00:01');
const end = moment().format('YYYY-MM-DD 23:59:59');
Wenn Sie nur an Zeitstempeln in GMT interessiert sind , können Sie dies auch tun, die bequem für verschiedene Intervalle (Stunde : 1000 * 60 * 60, 12 Stunden: 1000 * 60 * 60 * 12usw.) angepasst werden können.
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
Zu Ihrer Information (zusammengeführte Version von Tvanfosson)
Es wird das tatsächliche Datum => Datum zurückgegeben, an dem Sie die Funktion aufrufen
export const today = {
iso: {
start: () => new Date(new Date().setHours(0, 0, 0, 0)).toISOString(),
now: () => new Date().toISOString(),
end: () => new Date(new Date().setHours(23, 59, 59, 999)).toISOString()
},
local: {
start: () => new Date(new Date(new Date().setHours(0, 0, 0, 0)).toString().split('GMT')[0] + ' UTC').toISOString(),
now: () => new Date(new Date().toString().split('GMT')[0] + ' UTC').toISOString(),
end: () => new Date(new Date(new Date().setHours(23, 59, 59, 999)).toString().split('GMT')[0] + ' UTC').toISOString()
}
}
// wie benutzt man
today.local.now(); //"2018-09-07T01:48:48.000Z" BAKU +04:00
today.iso.now(); // "2018-09-06T21:49:00.304Z" *
* Dies gilt für den Sofortzeittyp unter Java8, der Ihre Ortszeit abhängig von Ihrer Region automatisch konvertiert. (Wenn Sie planen, eine globale App zu schreiben.)
Ich bevorzuge die Datums-FNS- Bibliothek zur Datumsmanipulation . Es ist wirklich ein tolles modulares und konsistentes Werkzeug. Sie können den Tag auf folgende Weise beginnen und beenden:
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>
var end = new Date(start.getTime());um sicherzustellen, dass Sie den gleichen Zeitpunkt haben - falls Sie die Daten zwischen Start- und Endinitialisierung ändern - es passieren kann - nur eine gute Angewohnheit, sich darauf einzulassen