Maison  >  Article  >  interface Web  >  Comment utiliser Javascript pour obtenir des prix différents pour chaque jour dans une plage de dates

Comment utiliser Javascript pour obtenir des prix différents pour chaque jour dans une plage de dates

亚连
亚连original
2018-06-07 16:41:411650parcourir

Cet article présente principalement les informations pertinentes sur l'implémentation de javascript pour obtenir différents prix par jour dans une plage de dates (calcul du prix total du séjour). Les amis dans le besoin peuvent se référer à

.

Exemple de code

Je développais récemment un petit projet de programme pour un hôtel et j'ai rencontré un tel problème.

Le prix des chambres d'hôtel est flottant, et le prix est différent chaque jour, heure ou à une date spéciale. Si l'utilisateur sélectionne une maison pour les cinq jours suivants et que les prix pour ces cinq jours sont différents et qu'il y a des jours spéciaux, comment calculer le prix total pour les cinq jours ?

L'exemple suivant répertorie toutes les dates de cette plage de dates en fonction de la date d'arrivée et de la date de départ :

Vous utiliserez cette fonction à plusieurs endroits, donc pour encapsuler : Créer un fichier js séparé

function Thedatefor(times,objroom){ // 日期段 objroom房间价格表,有星期和特殊日期
 var dateObj = []
 var feeroom = [] // 计算后总价格表
 var str = times[0].split("-") // 入住日期
 var end = times[1].split("-") //离店日期
 var strs = new Date();
 strs.setUTCFullYear(str[0], str[1] - 1, str[2]); //设置年份
 var ends = new Date();
 ends.setUTCFullYear(end[0], end[1] - 1, end[2]); //设置年份
 var strdate = strs.getTime(); //毫秒
 var enddate = ends.getTime(); // 毫秒
 for (var b = strdate; b <= enddate;) { // 遍历出所有日期段
 dateObj.push((new Date(parseInt(b))).format().toString());
 b = b + 24 * 60 * 60 * 1000;
 }
 for (var b = 0; b < dateObj.length;b++){  //dateObj拿到的所有日期
 var timedate = dateAllArr[b].split("-")  
 var getDays = new Date(dateObj[b]).getDay() == 0 ? 7 : new 
Date(dateObj[b]).getDay() //这里可以转换成星期几的
 for (var h = 0; h < (objroom.length - 1);h++){ 
  if (parseInt(timedate[0] + timedate[1] + timedate[2]) == objroom[h].match){ // 对比特殊日
  feeroom.push({ fee: objroom[h].fee, date: dateObj[b]})
  }//根据星期几和特殊日期来获取每天的价格
  if (getDays == objroom[h].match) { //对比星期
  feeroom.push({ fee: objroom[h].fee, date: dateObj[b] })
  }
 }
 }
 return feeroom //最后列出每天的价格,和日期返回
}

times est le format de la date d'arrivée et de la date de départ : '[2018-01-20,2018-01-26]', objroom est une liste de prix quotidienne pour cette salle pour la semaine à venir.

J'ai compilé ce qui précède pour vous, j'espère que cela vous sera utile à l'avenir.

Articles associés :

Analyse détaillée du code source de Vue Socket.io

Communication du composant Vue (tutoriel détaillé)

Erreurs quotidiennes en Javascript

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