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 相关文章推荐
jQuery UI Datepicker length为空或不是对象错误的解决方法
Dec 19 Javascript
jQuery实现的Email中的收件人效果(按del键删除)
Mar 20 Javascript
JavaScript修改css样式style动态改变元素样式
Dec 16 Javascript
JS组件Bootstrap按钮组与下拉按钮详解
May 10 Javascript
Bootstrap弹出框modal上层的输入框不能获得焦点问题的解决方法
Dec 13 Javascript
微信小程序的动画效果详解
Jan 18 Javascript
JS实现的DOM插入节点操作示例
Apr 04 Javascript
Vue动态生成el-checkbox点击无法赋值的解决方法
Feb 21 Javascript
使用Node.js实现一个多人游戏服务器引擎
Mar 13 Javascript
vue 实现websocket发送消息并实时接收消息
Dec 09 Javascript
node.js中npm包管理工具用法分析
Feb 14 Javascript
JS对象属性的检测与获取操作实例分析
Mar 17 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中函数的形参与实参的问题说明
2010/09/01 PHP
PHP操作MongoDB时的整数问题及对策说明
2011/05/02 PHP
innertext , insertadjacentelement , insertadjacenthtml , insertadjacenttext 等区别
2007/06/29 Javascript
Javascript学习笔记-详解in运算符
2011/09/13 Javascript
JavaScript中的this使用详解
2016/07/27 Javascript
javascript 数组的正态分布排序的问题
2016/07/31 Javascript
快速掌握jQuery插件开发
2017/01/19 Javascript
Bootstrap modal 多弹窗之叠加显示不出弹窗问题的解决方案
2017/02/23 Javascript
JS失效 提示HTML1114: (UNICODE 字节顺序标记)的代码页 utf-8 覆盖(META 标记)的冲突的代码页 utf-8
2017/06/23 Javascript
微信小程序滚动Tab实现左右可滑动切换
2017/08/17 Javascript
javascript修改浏览器title方法 JS动态修改浏览器标题
2017/11/30 Javascript
koa socket即时通讯的示例代码
2018/09/07 Javascript
解决js相同的正则多次调用test()返回的值却不同的问题
2018/10/10 Javascript
JavaScript解析及序列化JSON的方法实例分析
2019/01/04 Javascript
JS如何寻找数组中心索引过程解析
2020/06/01 Javascript
JavaScript字符串转数字的简单实现方法
2020/11/27 Javascript
[53:52]EG vs VGJ.T 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
python 随机数生成的代码的详细分析
2011/05/15 Python
python动态网页批量爬取
2016/02/14 Python
python装饰器深入学习
2018/04/06 Python
python3 判断列表是一个空列表的方法
2018/05/04 Python
Django 中使用流响应处理视频的方法
2018/07/20 Python
Python动态语言与鸭子类型详解
2019/07/01 Python
Pycharm安装Qt Design快捷工具的详细教程
2020/11/18 Python
HTML5-WebSocket实现聊天室示例
2016/12/15 HTML / CSS
HTML5页面嵌入小程序没有返回按钮及返回页面空白的问题
2020/05/28 HTML / CSS
西班牙香水和化妆品连锁店:Druni
2019/05/05 全球购物
自主招生自荐信格式
2013/12/03 职场文书
汽车销售员如何做职业生涯规划
2014/02/16 职场文书
网站美工岗位职责
2014/04/02 职场文书
运动会演讲稿300字
2014/08/25 职场文书
教务处教学工作总结
2015/08/10 职场文书
社区挂职锻炼个人工作总结
2015/10/23 职场文书
2016年基层党组织公开承诺书
2016/03/25 职场文书
spring cloud 配置中心native配置方式
2021/09/25 Java/Android
iSCSI服务器CHAP双向认证配置
2022/04/01 Servers