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 写类方式之三
Jul 05 Javascript
js超时调用setTimeout和间歇调用setInterval实例分析
Jan 28 Javascript
jquery验证手机号是否正确实例讲解
Nov 17 Javascript
JavaScript编程中实现对象封装特性的实例讲解
Jun 24 Javascript
微信小程序  自定义创建详细介绍
Oct 27 Javascript
Angular 4.x+Ionic3踩坑之Ionic 3.x界面传值详解
Mar 13 Javascript
angular2/ionic2 实现搜索结果中的搜索关键字高亮的示例
Aug 17 Javascript
vue src动态加载请求获取图片的方法
Oct 17 Javascript
npm的lock机制解析
Jun 20 Javascript
Vue列表循环从指定下标开始的多种解决方案
Apr 08 Javascript
JavaScript实现瀑布流布局的3种方式
Dec 27 Javascript
vue3自定义dialog、modal组件的方法
Jan 04 Vue.js
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 stream_get_meta_data返回值
2013/09/29 PHP
Yii2增加验证码步骤详解
2016/04/25 PHP
tp5框架的增删改查操作示例
2019/10/31 PHP
PHP中SESSION过期设置
2021/03/09 PHP
jQuery 表单验证扩展代码(一)
2010/10/11 Javascript
Area 区域实现post提交数据的js写法
2014/04/22 Javascript
JavaScript更改字符串的大小写
2015/05/07 Javascript
javascript实现点击商品列表checkbox实时统计金额的方法
2015/05/15 Javascript
JavaScript数据结构之二叉树的计数算法示例
2017/04/13 Javascript
原生JavaScript实现的简单省市县三级联动功能示例
2017/05/27 Javascript
jQuery层级选择器_动力节点节点Java学院整理
2017/07/04 jQuery
JavaScript中错误正确处理方式小结你用对了吗
2017/10/10 Javascript
jQuery基于cookie实现换肤功能实例
2017/10/14 jQuery
angular写一个列表的选择全选交互组件的示例
2018/01/22 Javascript
nuxt.js 缓存实践
2018/06/25 Javascript
element-ui表格数据转换的示例代码
2018/08/24 Javascript
js实现右键弹出自定义菜单
2020/09/08 Javascript
[01:50]2014DOTA2西雅图邀请赛 专访欢乐周宝龙
2014/07/08 DOTA
[01:54]TI4西雅图DOTA2选手欢迎晚宴 现场报道
2014/07/08 DOTA
Python数组条件过滤filter函数使用示例
2014/07/22 Python
Python CSV模块使用实例
2015/04/09 Python
Ubuntu 下 vim 搭建python 环境 配置
2017/06/12 Python
python僵尸进程产生的原因
2017/07/21 Python
Python判断文件或文件夹是否存在的三种方法
2017/07/27 Python
TensorFlow入门使用 tf.train.Saver()保存模型
2018/04/24 Python
python3.4.3下逐行读入txt文本并去重的方法
2018/04/29 Python
如何使用pyinstaller打包32位的exe程序
2019/05/26 Python
Windows 安装 Anaconda3+PyCharm的方法步骤
2019/06/13 Python
pytorch 改变tensor尺寸的实现
2020/01/03 Python
20世纪40年代连衣裙和复古服装:The Seamstress Of Bloomsbury
2018/07/24 全球购物
《乌鸦和狐狸》教学反思
2014/02/08 职场文书
大学学风建设方案
2014/05/04 职场文书
四川省传达学习贯彻党的群众路线教育实践活动总结大会精神新闻稿
2014/10/26 职场文书
小学英语课教学反思
2016/02/15 职场文书
Redis Stream类型的使用详解
2021/11/11 Redis
《艾尔登法环》1.03.3补丁上线 碎星伤害调整
2022/04/07 其他游戏