Pour ajouter 30 minutes à un objet JavaScript Date, vous pouvez suivez les étapes suivantes :
Utiliser une bibliothèque
Si vous faites beaucoup de travail de date, vous souhaiterez peut-être consulter les bibliothèques de dates JavaScript comme Luxon, Day.js ou Moment.js. Par exemple, avec Moment.js, c'est simplement :
var newDateObj = moment(oldDateObj).add(30, 'm').toDate();
Vanilla JavaScript
C'est comme la réponse du chaos, mais en une seule ligne :
var newDateObj = new Date(oldDateObj.getTime() diff*60000);
Où diff est la différence en minutes que vous souhaitez par rapport à l'heure de oldDateObj. Cela peut même être négatif.
Ou comme fonction réutilisable, si vous devez le faire à plusieurs endroits :
fonction addMinutes(date, minutes) {
return new Date(date.getTime() + minutes*60000);
>
Et juste au cas où cela ne serait pas évident, la raison pour laquelle nous multiplions les minutes par 60 000 est pour convertir les minutes en millisecondes.
Soyez prudent avec Vanilla JavaScript. Les rendez-vous sont difficiles !
Vous pensez peut-être que vous pouvez ajouter 24 heures à un rendez-vous pour obtenir la date de demain, n'est-ce pas ? Faux !
Il s’avère que si l’utilisateur observe l’heure d’été, une journée ne dure pas nécessairement 24 heures. Il y a un jour par an qui ne dure que 23 heures et un jour par an qui dure 25 heures. Par exemple, dans la plupart des États-Unis et au Canada, 24 heures après minuit, le 2 novembre 2014, est toujours le 2 novembre :
const NOV = 10 ; //parce que les mois JS sont décalés d'un...
addMinutes(new Date(2014, NOV, 2), 60*24); // Aux États-Unis, impression à 23 heures le 2 novembre, et non à minuit le 3 novembre !
C'est pourquoi l'utilisation de l'une des bibliothèques mentionnées ci-dessus est une valeur plus sûre si vous devez faire beaucoup de travail avec cela.
Vous trouverez ci-dessous une version plus générique de cette fonction que j'ai écrite. Je recommanderais toujours d'utiliser une bibliothèque, mais cela peut être excessif/impossible pour votre projet. La syntaxe est calquée sur la fonction MySQL DATE_ADD.
/**
fonction dateAdd(date, intervalle, unités) {
if(!( date instanceof Date))
return undefined;
var ret = new Date(date); //ne change pas la date d'origine
var checkRollover = function() { if(ret.getDate() != date.getDate()) ret.setDate(0);};
switch(String(interval ).toLowerCase()) {
case 'year' : ret.setFullYear(ret.getFullYear() + units); checkRollover(); break; case 'quarter': ret.setMonth(ret.getMonth() + 3*units); checkRollover(); break; case 'month' : ret.setMonth(ret.getMonth() + units); checkRollover(); break; case 'week' : ret.setDate(ret.getDate() + 7*units); break; case 'day' : ret.setDate(ret.getDate() + units); break; case 'hour' : ret.setTime(ret.getTime() + units*3600000); break; case 'minute' : ret.setTime(ret.getTime() + units*60000); break; case 'second' : ret.setTime(ret.getTime() + units*1000); break; default : ret = undefined; break;
}
return ret;
>
Travail jsFiddle démo.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!