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 相关文章推荐
js获得鼠标的坐标值的方法
Mar 13 Javascript
JS中 用户登录系统的解决办法
Apr 15 Javascript
javascript中负数算术右移、逻辑右移的奥秘探索
Oct 17 Javascript
Bootstrap按钮下拉菜单组件详解
May 10 Javascript
JQuery解析XML数据的几个简单实例
May 18 Javascript
javascript中获取元素标签中间的内容的实现方法
Oct 08 Javascript
为jQuery-easyui的tab组件添加右键菜单功能的简单实例
Oct 10 Javascript
JQuery中解决重复动画的方法
Oct 17 Javascript
vue+Vue Router多级侧导航切换路由(页面)的实现代码
Dec 20 Javascript
JS基于开关思想实现的数组去重功能【案例】
Feb 18 Javascript
layui表格数据重载
Jul 27 Javascript
javascript数组的定义及操作实例
Nov 10 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
Apache设置虚拟WEB
2006/10/09 PHP
php批量更改数据库表前缀实现方法
2013/10/26 PHP
smarty模板引擎从配置文件中获取数据的方法
2015/01/22 PHP
php使用gzip压缩传输js和css文件的方法
2015/07/29 PHP
Laravel手动分页实现方法详解
2016/10/09 PHP
Sample script that deletes a SQL Server database
2007/06/16 Javascript
PNGHandler-借助JS让PNG图在IE下实现透明(包括背景图)
2007/08/31 Javascript
纯CSS打造的导航菜单(附jquery版)
2010/08/07 Javascript
JavaScript调用浏览器打印功能实例分析
2015/07/17 Javascript
js 基础篇必看(点击事件轮播图的简单实现)
2016/08/20 Javascript
Vuex之理解Mutations的用法实例
2017/04/19 Javascript
vue-router 中router-view不能渲染的解决方法
2017/05/23 Javascript
bootstrap table方法之expandRow-collapseRow展开或关闭当前行数据
2020/08/09 Javascript
详谈构造函数加括号与不加括号的区别
2017/10/26 Javascript
使用命令行工具npm新创建一个vue项目的方法
2017/12/27 Javascript
js实现简单的倒计时
2021/01/28 Javascript
Python完全新手教程
2007/02/08 Python
python中精确输出JSON浮点数的方法
2014/04/18 Python
python基础教程之缩进介绍
2014/08/29 Python
Python字符串详细介绍
2015/05/09 Python
python使用logging模块发送邮件代码示例
2018/01/18 Python
对python 读取线的shp文件实例详解
2018/12/22 Python
Python实现微信机器人的方法
2019/09/06 Python
python3 assert 断言的使用详解 (区别于python2)
2019/11/27 Python
将python包发布到PyPI和制作whl文件方式
2019/12/25 Python
python闭包、深浅拷贝、垃圾回收、with语句知识点汇总
2020/03/11 Python
Python爬虫入门教程02之笔趣阁小说爬取
2021/01/24 Python
北京某科技有限公司C# .net笔试题
2014/09/27 面试题
通息工程毕业生自荐信
2013/10/16 职场文书
岗位聘任书范文
2014/03/29 职场文书
委托协议书范本
2014/04/22 职场文书
2014年工程师工作总结
2014/11/25 职场文书
财务个人年度总结范文
2015/02/26 职场文书
银行反洗钱宣传活动总结
2015/05/08 职场文书
2015入党自传书范文
2015/06/26 职场文书
关于开学的感想
2015/08/10 职场文书