javascript实现获取一个日期段内每天不同的价格(计算入住总价格)


Posted in Javascript onFebruary 05, 2018

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是一个未来一个星期的这个房间的每天价格表。

总结

以上所述是小编给大家介绍的javascript实现获取一个日期段内每天不同的价格(计算入住总价格),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
javascript 流畅动画实现原理
Sep 08 Javascript
Javascript表达式中连续的 &amp;&amp; 和 || 之赋值区别
Oct 17 Javascript
深入理解JavaScript系列(4) 立即调用的函数表达式
Jan 15 Javascript
jQuery获取动态生成的元素示例
Jun 15 Javascript
js闭包所用的场合以及优缺点分析
Jun 22 Javascript
js html5 css俄罗斯方块游戏再现
Oct 17 Javascript
AngularJS使用ng-repeat和ng-if实现数据的删选显示效果示例【适用于表单数据的显示】
Dec 13 Javascript
AngularJS中使用ngModal模态框实例
May 27 Javascript
浅谈JS中的常用选择器及属性、方法的调用
Jul 28 Javascript
如何理解Vue的render函数的具体用法
Aug 30 Javascript
Vue 事件处理操作实例详解
Mar 05 Javascript
JavaScript实现文件下载并重命名代码实例
Dec 12 Javascript
vue实现图片加载完成前的loading组件方法
Feb 05 #Javascript
JS设计模式之策略模式概念与用法分析
Feb 05 #Javascript
Node.js成为Web应用开发最佳选择的原因
Feb 05 #Javascript
Node.js上传文件功能之服务端如何获取文件上传进度
Feb 05 #Javascript
javascript实现最长公共子序列实例代码
Feb 05 #Javascript
JS设计模式之访问者模式定义与用法分析
Feb 05 #Javascript
基于vue 动态加载图片src的解决方法
Feb 05 #Javascript
You might like
PHP连接SQLSERVER 注意事项(附dll文件下载)
2012/06/28 PHP
基于Discuz security.inc.php代码的深入分析
2013/06/03 PHP
跟我学Laravel之请求(Request)的生命周期
2014/10/15 PHP
php结合ACCESS的跨库查询功能
2015/06/12 PHP
PHP实现中文圆形印章特效
2015/06/19 PHP
详解PHP PDO简单教程
2019/05/28 PHP
仿百度输入框智能提示的js代码
2013/08/22 Javascript
JS将光标聚焦在文本最后的实现代码
2014/03/28 Javascript
jQuery实现跨域iframe接口方法调用
2015/03/14 Javascript
浅析JS获取url中的参数实例代码
2016/06/14 Javascript
轻松搞定js表单验证
2016/10/13 Javascript
js利用for in循环获取 一个对象的所有属性以及值的实例
2017/03/30 Javascript
NodeJS创建最简单的HTTP服务器
2017/05/15 NodeJs
详解微信小程序Radio选中样式切换
2017/07/06 Javascript
认识less和webstrom的less配置方法
2017/08/02 Javascript
Vue.js 中取得后台原生HTML字符串 原样显示问题的解决方法
2018/06/10 Javascript
Vue Promise的axios请求封装详解
2018/08/13 Javascript
JS实现计算小于非负数n的素数的数量算法示例
2019/02/26 Javascript
JavaScript中AOP的实现与应用
2019/05/06 Javascript
jQuery中getJSON跨域原理的深入讲解
2020/09/02 jQuery
Vue axios获取token临时令牌封装案例
2020/09/11 Javascript
[05:31]DOTA2上海特级锦标赛主赛事第三日RECAP
2016/03/05 DOTA
Python 字符串操作实现代码(截取/替换/查找/分割)
2013/06/08 Python
使用python实现递归版汉诺塔示例(汉诺塔递归算法)
2014/04/08 Python
python socket 超时设置 errno 10054
2014/07/01 Python
运行django项目指定IP和端口的方法
2018/05/14 Python
python config文件的读写操作示例
2019/09/27 Python
python pandas移动窗口函数rolling的用法
2020/02/29 Python
HTML5利用约束验证API来检查表单的输入数据的代码实例
2016/12/20 HTML / CSS
美国知名的摄影器材销售网站:Adorama
2017/02/01 全球购物
阿里健康大药房:阿里自营网上药店
2017/08/01 全球购物
马德里竞技官方网上商店:Atletico Madrid Shop
2019/03/31 全球购物
SNIDEL官网:日本VIVI杂志人气少女第一品牌
2020/03/12 全球购物
中科方德软件测试面试题
2016/04/21 面试题
2014年国庆节活动总结
2014/08/26 职场文书
Windows Server 2016 配置 IIS 的详细步骤
2022/04/28 Servers