Home >Web Front-end >JS Tutorial >How to use javascript to obtain different prices for each day within a date range
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)
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!