Home >Web Front-end >JS Tutorial >How to use javascript to obtain different prices for each day within a date range

How to use javascript to obtain different prices for each day within a date range

亚连
亚连Original
2018-06-07 16:41:411655browse

This article mainly introduces the relevant information of javascript implementation to obtain different prices per day within a date range (calculating the total price of stay). Friends in need can refer to it

Code example

Recently I was developing a small program project for a hotel and encountered such a problem.

The hotel room price is floating, and the price is different every day, hour, or on a special date. If the user selects a house for the next 5 days, and the prices happen to be different during these 5 days, and there are special days, how to calculate the total price for the 5 days?

The following example lists all the dates within this date range based on the check-in date and check-out date:

You will use this function in several places, so To encapsulate: Create a separate js file

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 The check-in date and check-out date format is: '[2018-01-20,2018-01-26]', objroom is a future Daily price list for this room for a week.

The above is what I compiled for everyone. I hope it will be helpful to everyone in the future.

Related articles:

Detailed analysis of Vue Socket.io source code

Vue component communication (detailed tutorial)

Daily Errors in Javascript

The above is the detailed content of How to use javascript to obtain different prices for each day within a date range. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn