Maison > interface Web > js tutoriel > Comment ajouter 30 minutes à un objet date JavaScript ?

Comment ajouter 30 minutes à un objet date JavaScript ?

Mary-Kate Olsen
Libérer: 2025-01-04 10:50:40
original
974 Les gens l'ont consulté

How to Add 30 Minutes to a JavaScript Date Object?

Comment ajouter 30 minutes à un objet JavaScript Date ?

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);
Copier après la connexion

>
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.

/**

  • Ajoute de l'heure à une date. Modélisé d'après la fonction MySQL DATE_ADD.
  • Exemple : dateAdd(new Date(), 'minute', 30) //retourne dans 30 minutes.
  • https://stackoverflow.com/a /1214753/18511
  • @param date Date de début with
  • @param interval Un parmi : année, trimestre, mois, semaine, jour, heure, minute, seconde
  • @param units Nombre d'unités de l'intervalle donné à ajouter.
    */

fonction dateAdd(date, intervalle, unités) {
if(!( date instanceof Date))

return undefined;
Copier après la connexion

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;
Copier après la connexion

}
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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal