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 相关文章推荐
setTimeout和setInterval的区别你真的了解吗?
Mar 31 Javascript
Jquery 自定义动画概述及示例
Mar 29 Javascript
js传中文参数controller里获取参数乱码问题解决方法
Jan 03 Javascript
instanceof和typeof运算符的区别详解
Jan 06 Javascript
一款基于jQuery的图片场景标注提示弹窗特效
Jan 05 Javascript
jQuery超酷平面式时钟效果代码分享
Mar 30 Javascript
js实现图片无缝滚动
Dec 23 Javascript
SeaJS中use函数用法实例分析
Oct 10 Javascript
vue2.0 可折叠列表 v-for循环展示的实例
Sep 07 Javascript
vue实现类似淘宝商品评价页面星级评价及上传多张图片功能
Oct 29 Javascript
Angular6新特性之Angular Material
Dec 28 Javascript
vue cli4中mockjs在dev环境和build环境的配置详情
Apr 06 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
基于HBase Thrift接口的一些使用问题及相关注意事项的详解
2013/06/03 PHP
php截取html字符串及自动补全html标签的方法
2015/01/15 PHP
如何使用php等比例缩放图片
2016/10/12 PHP
PHP用户管理中常用接口调用实例及解析(含源码)
2017/03/09 PHP
javascript淡入淡出效果的实现思路
2012/03/31 Javascript
JQGrid的用法解析(列编辑,添加行,删除行)
2013/11/08 Javascript
javascript break指定标签打破多层循环示例
2014/01/20 Javascript
Node.js中的缓冲与流模块详细介绍
2015/02/11 Javascript
简介JavaScript中的sub()方法的使用
2015/06/08 Javascript
学习Javascript面向对象编程之封装
2016/02/23 Javascript
jQuery插件formValidator实现表单验证
2016/05/23 Javascript
JS中使用apply方法通过不同数量的参数调用函数的方法
2016/05/31 Javascript
react.js 获取真实的DOM节点实例(必看)
2017/04/17 Javascript
JS实现碰撞检测的方法分析
2018/01/19 Javascript
基于vue cli重构多页面脚手架过程详解
2018/01/23 Javascript
浅谈Angular 的变化检测的方法
2018/03/01 Javascript
vue.js 实现输入框动态添加功能
2018/06/25 Javascript
JS内部事件机制之单线程原理
2018/07/02 Javascript
JavaScript实现构造json数组的方法分析
2018/08/17 Javascript
vue-cli 引入jQuery,Bootstrap,popper的方法
2018/09/03 jQuery
vue路由事件beforeRouteLeave及组件内定时器的清除方法
2018/09/29 Javascript
JQuery特殊效果和链式调用操作示例
2019/05/13 jQuery
在React中写一个Animation组件为组件进入和离开加上动画/过度效果
2019/06/24 Javascript
JS实现网页端猜数字小游戏
2020/03/06 Javascript
Python转换HTML到Text纯文本的方法
2015/01/15 Python
让你的Python代码实现类型提示功能
2019/11/19 Python
Python守护进程实现过程详解
2020/02/10 Python
python 实现的IP 存活扫描脚本
2020/12/10 Python
pycharm 实现复制一行的快捷键
2021/01/15 Python
野兽派官方旗舰店:THE BEAST 野兽派
2016/08/05 全球购物
博士研究生自我鉴定范文
2013/12/04 职场文书
师范大学生求职信
2014/06/13 职场文书
学校党的群众路线教育实践活动总结材料
2014/10/30 职场文书
2014年教务工作总结
2014/12/03 职场文书
2014年企业党建工作总结
2014/12/18 职场文书
Windows下用Nginx配置https服务器及反向代理的问题
2021/09/25 Servers