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 相关文章推荐
WordPress 插件——CoolCode使用方法与下载
Jul 02 Javascript
25个非常棒的jQuery滑块插件和教程小结
Sep 02 Javascript
jquery 层次选择器siblings与nextAll的区别介绍
Aug 02 Javascript
jQuery 写的简单打字游戏可以提示正确和错误的次数
Jul 01 Javascript
jQuery中innerWidth()方法用法实例
Jan 19 Javascript
JS类的定义与使用方法深入探索
Nov 26 Javascript
用v-html解决Vue.js渲染中html标签不被解析的问题
Dec 14 Javascript
Bootstrap 3 进度条的实现
Feb 22 Javascript
jQuery动态追加页面数据以及事件委托详解
May 06 jQuery
解决bootstrap中使用modal加载kindeditor时弹出层文本框不能输入的问题
Jun 05 Javascript
JSONP原理及应用实例详解
Sep 13 Javascript
五句话帮你轻松搞定js原型链
Dec 09 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
利用discuz实现PHP大文件上传应用实例代码
2008/11/14 PHP
php 随机排序广告的实现代码
2011/05/09 PHP
php写的简易聊天室代码
2011/06/04 PHP
php 批量生成html,txt文件的实现代码
2013/06/26 PHP
Laravel框架源码解析之反射的使用详解
2020/05/14 PHP
一端时间轮换的广告
2006/06/26 Javascript
JS效率个人经验谈(8-15更新),加入range技巧
2007/01/09 Javascript
封装了一个js图片轮换效果的函数
2011/09/28 Javascript
JavaScript闭包函数访问外部变量的方法
2014/08/27 Javascript
JavaScript版的TwoQueues缓存模型
2014/12/29 Javascript
jquery实现全选和全不选功能效果的实现代码【推荐】
2016/05/05 Javascript
jQuery实现摸拟alert提示框
2016/05/22 Javascript
简单实现nodejs上传功能
2017/01/14 NodeJs
微信小程序技巧之show内容展示,上传文件编码问题
2017/01/23 Javascript
使用Vue Composition API写出清晰、可扩展的表单实现
2020/06/10 Javascript
如何使用jQuery操作Cookies方法解析
2020/09/08 jQuery
python 图片验证码代码
2008/12/07 Python
Python 文件重命名工具代码
2009/07/26 Python
Python新手实现2048小游戏
2015/03/31 Python
Python 实现数据库(SQL)更新脚本的生成方法
2017/07/09 Python
DataFrame中的object转换成float的方法
2018/04/10 Python
python3利用venv配置虚拟环境及过程中的小问题小结
2018/08/01 Python
解决PyCharm的Python.exe已经停止工作的问题
2018/11/29 Python
python将list转为matrix的方法
2018/12/12 Python
搞定这套Python爬虫面试题(面试会so easy)
2019/04/03 Python
基于python实现百度翻译功能
2019/05/09 Python
pandas DataFrame行或列的删除方法的实现示例
2019/08/02 Python
python字典和json.dumps()的遇到的坑分析
2020/03/11 Python
Python3交互式shell ipython3安装及使用详解
2020/07/11 Python
linux面试题参考答案(8)
2015/08/11 面试题
Linux操作面试题
2012/05/16 面试题
英语专业推荐信
2013/11/16 职场文书
家居设计专业个人自荐信范文
2013/11/26 职场文书
计算机专业毕业生自荐书
2014/06/02 职场文书
体育教师求职信
2014/06/30 职场文书
大学生违纪检讨书范文
2015/05/07 职场文书