Risposte:
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() );
Se è necessario ottenere l'ora UTC da quelli, è possibile utilizzare UTC().
setUTCHoursinvece di setHoursottenere Universal time
setHoursè pericoloso poiché imposta le ore locali, anziché le ore UTC.
Usando la libreria momentjs , questo può essere ottenuto con i metodi startOf()e endOf()sull'oggetto data corrente del momento, passando la stringa 'day'come argomenti:
GMT locale:
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()alla fine per ottenere la data. var end = moment().endOf('day').toDate();
.unix()alla fine per ottenere unix timestamp in secondi :) in questo modo:moment().startOf('day').unix()
moment(new Date()).endOf("day");non funziona, ma moment().endOf("day");funziona.
moment-timezonee fare questo: moment().tz('America/Chicago').startOf('day').toDate().
Usando la libreria luxon.js , lo stesso può essere ottenuto usando i metodi startOf ed endOf passando il 'giorno' come parametro
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
rimuovere .toUTC () se è necessaria solo l'ora locale
e potresti chiedere perché non moment.js , la risposta è qui per quello.
In MomentJs possiamo dichiararlo come:
const start = moment().format('YYYY-MM-DD 00:00:01');
const end = moment().format('YYYY-MM-DD 23:59:59');
Se sei solo interessato ai timestamp nel GMT puoi anche farlo, che può essere comodamente adattato a diversi intervalli (ora:, 1000 * 60 * 6012 ore:, 1000 * 60 * 60 * 12ecc.)
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
FYI (versione unita di Tvanfosson)
restituirà la data effettiva => data quando si chiama la funzione
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()
}
}
// come usare
today.local.now(); //"2018-09-07T01:48:48.000Z" BAKU +04:00
today.iso.now(); // "2018-09-06T21:49:00.304Z" *
* è applicabile per il tipo di ora istantanea su Java8 che converte automaticamente l'ora locale in base alla propria regione (se si prevede di scrivere un'app globale)
Preferisco usare la libreria date-fns per manipolare la data. È davvero un ottimo strumento modulare e coerente. Puoi iniziare e finire la giornata in questo modo:
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());di assicurarti di avere lo stesso punto nel tempo - nel caso in cui cambi le date tra l'inizio e la fine dell'inizializzazione - può succedere - solo una buona abitudine per entrare