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 相关文章推荐
JavaScript 参考教程
Dec 29 Javascript
常用简易JavaScript函数
Apr 09 Javascript
JavaScript 基于原型的对象(创建、调用)
Oct 16 Javascript
jQuery checkbox全选/取消全选实现代码
Nov 14 Javascript
JavaScript中“+”的陷阱深刻理解
Dec 04 Javascript
JavaScript资源预加载组件和滑屏组件的使用推荐
Mar 10 Javascript
简单实现轮播图效果的实例
Jul 15 Javascript
JavaScript中匿名函数的递归调用
Jan 22 Javascript
判断div滑动到底部的scroll实例代码
Nov 15 Javascript
Vue精简版风格指南(推荐)
Jan 30 Javascript
通过javascript实现段落的收缩与展开
Jun 26 Javascript
使用apifm-wxapi快速开发小程序过程详解
Aug 05 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
smarty中先strip_tags过滤html标签后truncate截取文章运用
2010/10/25 PHP
Yii2中使用asset压缩js,css文件的方法
2016/11/24 PHP
laravel 解决路由除了根目录其他都404的问题
2019/10/18 PHP
asp(javascript)全角半角转换代码 dbc2sbc
2009/08/06 Javascript
jquery模拟按下回车实现代码
2011/09/20 Javascript
Js-$.extend扩展方法使方法参数更灵活
2013/01/15 Javascript
网页中可关闭的漂浮窗口实现可自行调节
2013/08/20 Javascript
javascript数组克隆简单实现方法
2015/12/16 Javascript
IE6-IE9使用JSON、table.innerHTML所引发的问题
2015/12/22 Javascript
JavaScript数组的一些奇葩行为
2016/01/25 Javascript
JavaScript操作select元素和option的实例代码
2016/01/29 Javascript
js简单判断移动端系统的方法
2016/02/25 Javascript
使用jQuery实现掷骰子游戏
2019/10/24 jQuery
浅谈TypeScript的类型保护机制
2020/02/23 Javascript
解决vscode进行vue格式化,会自动补分号和双引号的问题
2020/10/26 Javascript
Vue的el-scrollbar实现自定义滚动
2018/05/29 Python
python判断设备是否联网的方法
2018/06/29 Python
python无限生成不重复(字母,数字,字符)组合的方法
2018/12/04 Python
python os模块简单应用示例
2019/05/23 Python
python调用其他文件函数或类的示例
2019/07/16 Python
django drf框架中的user验证以及JWT拓展的介绍
2019/08/12 Python
pyautogui自动化控制鼠标和键盘操作的步骤
2020/04/01 Python
日本非常有名的内衣丝袜品牌:GUNZE
2017/01/06 全球购物
戴森英国官网:Dyson英国
2019/05/07 全球购物
什么是唯一索引
2015/07/05 面试题
linux面试题参考答案(7)
2012/10/29 面试题
十八大感想感言
2014/02/10 职场文书
安全生产一岗双责责任书
2014/07/28 职场文书
关于运动会的广播稿(10篇)
2014/09/12 职场文书
2014机关党员干部“正风肃纪”思想汇报
2014/09/15 职场文书
2014群众路线学习笔记
2014/11/06 职场文书
2015年端午节活动方案
2015/05/05 职场文书
钱学森电影观后感
2015/06/04 职场文书
反腐倡廉心得体会2016
2016/01/13 职场文书
简单介绍 http请求响应参数、无连接无状态、MIME、状态码、端口、telnet、curl
2021/03/31 HTML / CSS
python 爬取京东指定商品评论并进行情感分析
2021/05/27 Python