Réponses:
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() );
Si vous devez obtenir l'heure UTC à partir de ceux-ci, vous pouvez l'utiliser UTC().
setUTCHoursau lieu de setHourspour obtenir l'heure universelle
setHoursest dangereuse car elle définit les heures locales, au lieu des heures UTC.
En utilisant la bibliothèque momentjs , cela peut être réalisé avec les méthodes startOf()et endOf()sur l'objet date actuel du moment, en passant la chaîne 'day'comme arguments:
GMT local:
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()à la fin pour obtenir la date. var end = moment().endOf('day').toDate();
.unix()à la fin pour obtenir l'horodatage unix en quelques secondes :) comme ceci:moment().startOf('day').unix()
moment(new Date()).endOf("day");ne fonctionne pas, mais moment().endOf("day");fonctionne.
moment-timezoneet faire: moment().tz('America/Chicago').startOf('day').toDate().
À l'aide de la bibliothèque luxon.js , la même chose peut être obtenue en utilisant les méthodes startOf et endOf en passant le «jour» comme paramètre
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
supprimez .toUTC () si vous n'avez besoin que de l'heure locale
et vous pouvez demander pourquoi pas moment.js , la réponse est là pour ça.
Dans MomentJs, nous pouvons le déclarer comme:
const start = moment().format('YYYY-MM-DD 00:00:01');
const end = moment().format('YYYY-MM-DD 23:59:59');
Si vous êtes simplement intéressé par les horodatages en GMT, vous pouvez également le faire, qui peut être facilement adapté à différents intervalles (heure:, 1000 * 60 * 6012 heures:, 1000 * 60 * 60 * 12etc.)
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 (version fusionnée de Tvanfosson)
il renverra la date réelle => date à laquelle vous appelez la fonction
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()
}
}
// comment utiliser
today.local.now(); //"2018-09-07T01:48:48.000Z" BAKU +04:00
today.iso.now(); // "2018-09-06T21:49:00.304Z" *
* il s'applique au type de temps instantané sur Java8 qui convertit automatiquement votre heure locale en fonction de votre région. (si vous prévoyez d'écrire une application globale)
Je préfère utiliser la bibliothèque date-fns pour la manipulation des dates. C'est vraiment un excellent outil modulaire et cohérent. Vous pouvez commencer et terminer la journée de cette façon:
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());pour vous assurer d'avoir le même moment dans le temps - dans le cas où vous changez les dates entre le début et la fin de l'initialisation - cela peut arriver - juste une bonne habitude pour entrer