javascript实现获取一个日期段内每天不同的价格(计算入住总价格)
- 更新时间:2022-06-22 06:35:17
- 编辑:牧明煦
参考资料
- JavaScript之美 PDF 电子书 / 94 MB / 安顿?科瓦诺夫 推荐度:
- JavaScript for PHP Developers PDF 电子书 / 27.4 MB / Stoyan Stefanov 推荐度:
- JavaScript学习指南(第2版) PDF 电子书 / 35 MB / 李荣青 / 吴兰陟 / 甲来安 推荐度:
正文内容
代码例子
最近在做酒店的小程序项目开发,遇到一个这样的问题。
酒店的房间价格是浮动的,每天每时或某个特殊的日期价格等都是浮动的不一样。如果用户选择了未来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使用atan2绘制箭头和曲线的方法详解
下面小编就为大家带来一篇JavaScript使用atan2来绘制箭头和曲线的实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
发布时间:2019-11-20
-
JavaScript中的call、apply方法使用对比
这篇文章主要介绍了JavaScript中的call方法和apply方法使用对比,需要的朋友可以参考下
发布时间:2019-12-07
-
JavaScript中Promise使用
Promise,相信每一个前端工程师都或多或少地在项目中都是用过,毕竟它早已不是一个新名词。ES6中已经原生对它加以支持,在caniuse中搜索一下 Promise ,发现新版的chrome和firefox也已经支持。但是
发布时间:2020-01-27
-
分享JavaScript 获取元素在父节点中的下标技巧
jQuery中直接通过$(this).index()即可得到当前元素的下标。下面通过实例给大家介绍JavaScript 获取元素在父节点中的下标,需要的朋友参考下吧
发布时间:2020-02-12
-
javascript模拟鼠标点击事件的实例代码
这篇文章主要介绍了javascript触发模拟鼠标点击事件,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
发布时间:2020-06-15
-
详解javascript 数组的sort方法
在javascript中,数组对象有一个有趣的方法sort,它接收一个类型为函数的参数作为排序的依据。这意味着开发者只需要关注如何比较两个值的大小,而不用管排序这件事内部是如何实现的
发布时间:2020-02-09
-
JavaScript 中的 JSON的知识点整理
我们先来看一个JS中常见的JS对象序列化成JSON字符串的问题,请问,以下JS对象通过JSON.stringify后的字符串是怎样的
发布时间:2020-03-26
-
JavaScript面向对象程序设计创建对象的方法分析
为网友们分享了关于JavaScript的教程,这篇文章主要介绍了JavaScript面向对象程序设计创建对象的方法,结合实例形式分析了javascript使用object构造函数和对象字面量来创建对象的相关操作技巧,需要的朋友可以参考下
发布时间:2022-06-19
-
JavaScript String 对象常用实例方法
下面小编就为大家带来一篇JavaScript String 对象常用方法详解。小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
发布时间:2020-04-06