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分解url参数(面向对象-极简主义法应用)
Aug 09 Javascript
js函数中onmousedown和onclick的区别和联系探讨
May 19 Javascript
Javascript 学习笔记之 对象篇(二) : 原型对象
Jun 24 Javascript
JavaScript前端图片加载管理器imagepool使用详解
Dec 29 Javascript
jquery实现简易的移动端验证表单
Nov 08 Javascript
jQuery中值得注意的trigger方法浅析
Dec 12 Javascript
深入探究node之Transform
Jul 20 Javascript
解决jquery的ajax调取后端数据成功却渲染失败的问题
Aug 08 jQuery
Vue 动态组件components和v-once指令的实现
Aug 30 Javascript
微信小程序左右滚动公告栏效果代码实例
Sep 16 Javascript
vue 项目打包时样式及背景图片路径找不到的解决方式
Nov 12 Javascript
在vue项目中封装echarts的步骤
Dec 25 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
解决了Ajax、MySQL 和 Zend Framework 的乱码问题
2009/03/03 PHP
PHP扩展编写点滴 技巧收集
2010/03/09 PHP
php中获取主机名、协议及IP地址的方法
2014/11/18 PHP
php利用ob_start()清除输出和选择性输出的方法
2018/01/18 PHP
你的编程语言可以这样做吗?
2006/09/07 Javascript
jquery 文本上下无缝滚动,鼠标放上去就停止 小例子
2013/06/05 Javascript
JS对select控件option选项的增删改查示例代码
2013/10/21 Javascript
jQuery实现多按钮单击变色
2014/11/27 Javascript
jquery滚动特效集锦
2015/06/03 Javascript
百度坐标(BD09)、国测局坐标(火星坐标,GCJ02)、和WGS84坐标系之间的转换
2016/02/19 Javascript
微信小程序 progress组件详解及实例代码
2016/10/25 Javascript
js实现放大镜特效
2017/05/18 Javascript
AngularJS实现的生成随机数与猜数字大小功能示例
2017/12/25 Javascript
Vue项目中跨域问题解决方案
2018/06/05 Javascript
VueCli4项目配置反向代理proxy的方法步骤
2020/05/17 Javascript
原生JS实现微信通讯录
2020/06/18 Javascript
[05:04]DOTA2上海特级锦标赛主赛事第二日TOP10
2016/03/04 DOTA
[56:00]2018DOTA2亚洲邀请赛 4.6 淘汰赛 VP vs TNC 第二场
2018/04/10 DOTA
讲解Python中的递归函数
2015/04/27 Python
如何利用Boost.Python实现Python C/C++混合编程详解
2018/11/08 Python
Selenium chrome配置代理Python版的方法
2018/11/29 Python
python3使用QQ邮箱发送邮件
2020/05/20 Python
详解python中的线程与线程池
2019/05/10 Python
python监控进程状态,记录重启时间及进程号的实例
2019/07/15 Python
详解Django中异步任务之django-celery
2020/11/05 Python
Black Halo官方网站:购买连衣裙、礼服和连体裤
2018/06/13 全球购物
Molly Bracken法国电子商店:法国女性时尚品牌
2019/07/24 全球购物
大班开学家长寄语
2014/04/04 职场文书
四风对照检查材料范文
2014/09/27 职场文书
办理护照工作证明
2014/10/10 职场文书
幼儿园感恩节活动方案2014
2014/10/11 职场文书
谢师宴答谢词
2015/01/05 职场文书
学历证明范文
2015/06/16 职场文书
解决MySQL存储时间出现不一致的问题
2021/04/28 MySQL
十大冰系宝可梦排名,颜值最高的阿罗拉九尾,第三使用率第一
2022/03/18 日漫
SpringBoot整合Minio文件存储
2022/04/03 Java/Android