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学习基础知识小结
Nov 25 Javascript
写得不错的jquery table鼠标经过变色代码
Sep 27 Javascript
jQuery文件上传插件Uploadify使用指南
Jun 05 Javascript
Jquery中Event对象属性小结
Feb 27 Javascript
js支持键盘控制的左右切换立体式图片轮播效果代码分享
Aug 26 Javascript
针对后台列表table拖拽比较实用的jquery拖动排序
Oct 10 Javascript
详解vue2父组件传递props异步数据到子组件的问题
Jun 29 Javascript
javascript定时器取消定时器及优化方法
Jul 08 Javascript
详解Vue学习笔记入门篇之组件的内容分发(slot)
Jul 17 Javascript
解决layui表格内文本超出隐藏的问题
Sep 12 Javascript
在Vue项目中使用Typescript的实现
Dec 19 Javascript
js找出5个数中最大的一个数和倒数第二大的数实现方法示例小结
Mar 04 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 接口类与抽象类的实际作用
2009/11/26 PHP
PHP实现在线阅读PDF文件的方法
2015/06/17 PHP
利用PHP实现一个简单的用户登记表示例
2017/04/25 PHP
Windows上php5.6操作mongodb数据库示例【配置、连接、获取实例】
2019/02/13 PHP
浅谈Javascript事件处理程序的几种方式
2012/06/27 Javascript
JQquery的一些使用心得分享
2012/08/01 Javascript
jQuery提交多个表单的小例子
2013/06/30 Javascript
js实现可兼容IE、FF、Chrome、Opera及Safari的音乐播放器
2015/02/11 Javascript
javascript搜索框效果实现方法
2015/05/14 Javascript
js文本框输入内容智能提示效果
2015/12/02 Javascript
JQuery Mobile实现导航栏和页脚
2016/03/09 Javascript
解析微信JS-SDK配置授权,实现分享接口
2016/12/09 Javascript
关于axios如何全局注册浅析
2018/01/14 Javascript
vue-vuex中使用commit提交mutation来修改state的方法详解
2018/09/16 Javascript
JavaScript怎样在删除前添加确认弹出框?
2019/05/27 Javascript
JavaScript 自定义html元素鼠标右键菜单功能
2019/12/02 Javascript
Vue父组件向子组件传值以及data和props的区别详解
2020/03/02 Javascript
解决微信授权成功后点击按返回键出现空白页和报错的问题
2020/06/08 Javascript
JavaScript中变量提升和函数提升的详解
2020/08/07 Javascript
[05:06]2017亚洲邀请赛DAC回顾片
2017/04/19 DOTA
Python编写简单的HTML页面合并脚本
2016/07/11 Python
Python基于列表模拟堆栈和队列功能示例
2018/01/05 Python
python如何将图片转换为字符图片
2020/08/19 Python
Python 实现删除某路径下文件及文件夹的实例讲解
2018/04/24 Python
Python如何用filter函数筛选数据
2020/03/05 Python
利用Python中的Xpath实现一个在线汇率转换器
2020/09/09 Python
使用HTML5进行SVG矢量图形绘制的入门教程
2016/02/19 HTML / CSS
英国图书音像网站:Hive.co.uk(图书、电子书、DVD、蓝光、音乐CD等)
2017/10/16 全球购物
全球最大的生存食品、水和装备专用在线市场:BePrepared.com
2020/01/02 全球购物
凌阳科技股份有限公司C++程序员面试题笔试题
2014/11/20 面试题
内科护士实习自我鉴定
2013/10/17 职场文书
爱护草坪标语
2014/06/24 职场文书
电话客服工作职责
2014/07/27 职场文书
民间借贷被告代理词
2015/05/23 职场文书
Java数组与堆栈相关知识总结
2021/06/29 Java/Android
Redis实现主从复制方式(Master&Slave)
2022/06/21 Redis