Maison  >  Article  >  interface Web  >  Incrémenter la date donnée en JavaScript

Incrémenter la date donnée en JavaScript

PHPz
PHPzavant
2023-09-10 13:17:021155parcourir

在 JavaScript 中增加给定日期

Dans cet article, nous verrons comment incrémenter une date donnée à l'aide de JavaScript. Tout d’abord, analysons et comprenons le sens de cette phrase. Étant donné une date x = "05-02-2023", nous voulons ajouter y = 7 jours à cette date et imprimer la date résultante "12-02-2023". En tant qu'humains, nous pouvons ajouter manuellement le 5 février à 7 jours et obtenir le résultat. Mais nous avons besoin de JavaScript pour faire cela par programmation.

Nous discuterons de quelques techniques pour ce faire dans cet article.

Utilisez la fonction addDays()

La fonction

addDays accepte 2 paramètres, qui sont la date et le nombre de jours à incrémenter. Dans le code ci-dessous, nous ajouterons 7 jours à la date actuelle et imprimerons la date ajoutée sur la console.

Exemple

function addDays(date, days) {
   
   // Function to add Days
   var result = new Date(date);
   result.setDate(result.getDate() + days);
   return result;
}
let date = new Date();
console.log("Current date is "+date);
let incrementedDate = addDays(date, 7);
console.log("Increment date is "+incrementedDate);

Sortie

Current date is Tue Mar 07 2023 11:38:38 GMT+0530 (India Standard Time)
Increment date is Tue Mar 14 2023 11:38:38 GMT+0530 (India Standard Time)

Utilisez les fonctions setDate() et getDate()

La fonction getDate renvoie un entier compris entre 1 et 31, indiquant le jour du mois. Utilisez ensuite la fonction setdate pour définir la valeur de la variable sur une date incrémentielle. Ici, nous ajouterons 14 jours à la date actuelle et afficherons le résultat sur la console. Le nombre de jours accru sera enregistré dans la même variable "date", il n'est donc pas nécessaire d'utiliser une autre variable.

Exemple

let date = new Date();
console.log("Current date is "+date);
date.setDate(date.getDate()+14);
console.log("Increment date is "+date);

Sortie

Current date is Tue Mar 07 2023 11:40:55 GMT+0530 (India Standard Time)
Increment date is Tue Mar 21 2023 11:40:55 GMT+0530 (India Standard Time)

Fonctions définies par l'utilisateur

Ici, au lieu d'utiliser une fonction intégrée, nous allons créer notre propre fonction pour incrémenter la date. Nous extrayons d’abord les jours entiers du mois, du mois et de l’année à partir de la date donnée et les stockons respectivement sous forme de variables d, m et y. Nous ajoutons ensuite le nombre de jours à la variable d ou day et la reconvertissons au format date au retour. Actuellement, cette fonction a des capacités limitées pour ajouter des jours au-delà d'un mois, mais cela peut tout au plus être modifié ou évité puisqu'une fonction intégrée existe.

Exemple

function AddDays(start,days){
   var d=start.getDate();
   var m=start.getMonth()+1;
   
   //getMonth returns the index of the month hence +1 is added
   var y=start.getYear();
   
   //getYear returns the year minus 1900 in the current javascript version, hence 1900 is added to it below
   var newDate=m+"-"+(d+days)+"-"+(y+1900);
   return new Date(newDate);
}
today=new Date();
console.log("The date today is "+today);
console.log("The date after 5 days is "+AddDays(today,5));

Sortie

The date today is Tue Mar 07 2023 11:43:02 GMT+0530 (India Standard Time)
The date after 5 days is Sun Mar 12 2023 00:00:00 GMT+0530 (India Standard Time)

Ajoutez uniquement les jours ouvrables

On peut souvent voir des sites de commerce électronique utiliser des incréments de jours pour afficher les délais de livraison estimés. Ce délai de livraison n'est généralement pas disponible le dimanche. Les dimanches doivent être exclus lors du calcul des dates de livraison estimées. Les jours fériés peuvent également être exclus.

Voici comment ajouter 7 jours ouvrables à la date actuelle.

Exemple

function AddWorkingDays(start,days){
  
  // retrieve the index of the start date
   var d=start.getDay();
   var incrementby=days;
   if(d==0){
     
     // 0 stands for Sunday, if current day is a Sunday then add 1 day
      incrementby++;
   }
   if (d + incrementby >= 6) {
      
      //Subtract days in current working week from working days
      var remainingWorkingDays = incrementby - (5 - d);
      
      //Add current working week's weekend
      incrementby += 2;
      if (remainingWorkingDays > 5) {
         
         //Add two days for every working week by finding out how many weeks are included
         incrementby += 2 * Math.floor(remainingWorkingDays / 5);
        
         //Exclude the final weekend if the remainingWorkingDays is a equal to an exact number of weeks
         if (remainingWorkingDays % 5 == 0)
         incrementby -= 2;
      }
   }
   start.setDate(start.getDate() + incrementby);
   return start;
}
var today=new Date();
console.log("Current date is "+today);
console.log("8 working days later would be "+AddWorkingDays(today,8));

Sortie

Current date is Tue Mar 07 2023 11:45:58 GMT+0530 (India Standard Time)
8 working days later would be Fri Mar 17 2023 11:45:58 GMT+0530 (India Standard Time)

Conclusion

Toutes les méthodes ci-dessus vous permettent d'ajouter des jours, des mois et même des années à une date donnée. La fonction d'ajout de jours ouvrés est très utile dans l'industrie et peut être utilisée par les plateformes de commerce électronique, les sites de plats à emporter, etc. En plus de ces méthodes, nous pouvons également exploiter la bibliothèque Moment.js, mais cela apportera une complexité inutile au travail. programme.

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer