首頁  >  文章  >  web前端  >  javascript該如何實現獲取日期段內每天不同的價格

javascript該如何實現獲取日期段內每天不同的價格

亚连
亚连原創
2018-06-07 16:41:411598瀏覽

這篇文章主要介紹了javascript實現獲取一個日期段內每天不同的價格(計算入住總價格)的相關資料,需要的朋友可以參考下

 

程式碼範例

最近在做飯店的小程式專案開發,遇到一個這樣的問題。

飯店的房間價格是浮動的,每天每時或某個特殊的日期價格等都是浮動的不一樣。如果用戶選擇了未來5天的房屋的話,而這5天剛好價格還都不一樣還有特殊日的價格,如何計算出一個5天的總價格呢?

下面的例子是根據入住的日期,和離店的日期來列出這一個日期段內的所有日期:

這個功能你會有幾個地方用到,所以要封裝下:單獨建造一個js檔案

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傳入的是入住日期和離店日期格式為:'[2018-01-20,2018-01-26]',objroom是一個未來一個星期的這個房間的每天價格表。

上面是我整理給大家的,希望今後對大家有幫助。

相關文章:

Vue Socket.io原始碼詳細分析

Vue元件通訊(詳細教學)

Javascript的日常錯誤

#

以上是javascript該如何實現獲取日期段內每天不同的價格的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn