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 关键字屏蔽实现函数
Aug 02 Javascript
Javascript 面向对象之重载
May 04 Javascript
jquery 操作表格实现代码(多种操作打包)
Mar 20 Javascript
js实现点击后将文字或图片复制到剪贴板的方法
Aug 04 Javascript
浅谈js基本数据类型和typeof
Aug 09 Javascript
jquery事件绑定解绑机制源码解析
Sep 19 Javascript
jquery网页加载进度条的实现
Jun 01 jQuery
bootstrap treeview 树形菜单带复选框及级联选择功能
Jun 08 Javascript
利用es6 new.target来对模拟抽象类的方法
May 10 Javascript
浅析Vue 防抖与节流的使用
Nov 14 Javascript
vue列表数据发生变化指令没有更新问题及解决方法
Jan 16 Javascript
JavaScript中遍历的十种方法总结
Dec 15 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+javascript液晶时钟
2006/10/09 PHP
php实现处理输入转义字符的代码
2015/11/08 PHP
解决thinkPHP 5 nginx 部署时,只跳转首页的问题
2019/10/16 PHP
解决windows上php xdebug 无法调试的问题
2020/02/19 PHP
Aster vs Newbee BO5 第一场2.19
2021/03/10 DOTA
从javascript语言本身谈项目实战
2006/12/27 Javascript
document.getElementBy(&quot;id&quot;)与$(&quot;#id&quot;)有什么区别
2013/09/22 Javascript
JS实现的通用表单验证插件完整实例
2015/08/20 Javascript
简单谈谈JavaScript的同步与异步
2015/12/31 Javascript
浅谈js里面的InttoStr和StrtoInt
2016/06/14 Javascript
jQuery扩展+xml实现表单验证功能的方法
2016/12/25 Javascript
获取IE浏览器Cookie信息的方法
2017/01/23 Javascript
Angular.js指令学习中一些重要属性的用法教程
2017/05/24 Javascript
XMLHttpRequest对象_Ajax异步请求重点(推荐)
2017/09/28 Javascript
利用es6 new.target来对模拟抽象类的方法
2019/05/10 Javascript
解决layui轮播图有数据不显示的情况
2019/09/16 Javascript
[03:36]DOTA2完美大师赛coL战队趣味视频——我演你猜
2017/11/23 DOTA
Python中的包和模块实例
2014/11/22 Python
python实现同时给多个变量赋值的方法
2015/04/30 Python
python监控linux内存并写入mongodb(推荐)
2017/09/11 Python
python统计中文字符数量的两种方法
2019/01/31 Python
Selenium基于PIL实现拼接滚动截图
2020/04/10 Python
Python稀疏矩阵及参数保存代码实现
2020/04/18 Python
Python3爬虫中Splash的知识总结
2020/07/10 Python
PyQT5速成教程之Qt Designer介绍与入门
2020/11/02 Python
HTML5里的placeholder属性使用实例和美化显示效果的方法
2014/04/23 HTML / CSS
手机端用rem+scss做适配的详解
2017/11/15 HTML / CSS
什么是Smarty变量操作符?如何使用Smarty变量操作符
2014/07/18 面试题
上课睡觉检讨书
2014/01/28 职场文书
高考备战决心书
2014/03/11 职场文书
员工试用期考核自我鉴定
2014/04/13 职场文书
《记金华的双龙洞》教学反思
2014/04/19 职场文书
快餐公司创业计划书
2014/04/29 职场文书
新法人代表任命书
2014/06/06 职场文书
毕业设计答辩开场白
2015/05/29 职场文书
python3读取文件指定行的三种方法
2021/05/24 Python