이 글에서는 날짜 범위 내에서 하루에 다른 가격을 얻기 위한 자바스크립트 구현 관련 정보를 주로 소개합니다(총 숙박 비용 계산). 필요한 친구는 참고하세요
코드 예시
최근에 진행하고 있는 작업인데 호텔을 위한 소규모 프로그램 프로젝트를 개발하다가 이런 문제에 부딪혔습니다.
호텔 객실 가격은 유동적이며 가격은 매일, 시간 또는 특정 날짜에 따라 다릅니다. 사용자가 다음 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 소스 코드에 대한 자세한 분석
위 내용은 자바스크립트를 사용하여 날짜 범위 내 매일 다른 가격을 얻는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!