javascript实现获取一个日期段内每天不同的价格(计算入住总价格)

 更新时间:2018年02月05日 09:34:05   作者:奇惠小前端  
这篇文章主要介绍了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数组克隆简单实现方法

    这篇文章主要介绍了javascript数组克隆简单实现方法,实例分析了JavaScript中concat用于数组克隆的使用技巧,需要的朋友可以参考下
    2015-12-12
  • 用js获取电脑信息(是使用与IE浏览器)

    用js获取电脑信息(是使用与IE浏览器)

    用js获取本地电脑信息(但是只能在IE浏览器下才行,其他浏览器其获取不到的)
    2013-01-01
  • js删除数组中指定元素的几种方式

    js删除数组中指定元素的几种方式

    js数组是js部分非常重要的知识,有时我们有这么个需求js数组删除指定元素,下面这篇文章主要给大家介绍了关于js删除数组中指定元素的几种方式,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-01-01
  • js链接确认提醒功能

    js链接确认提醒功能

    非常不错的功能,当单机一个链接时,会弹出确认对话框效果
    2008-09-09
  • 详解如何用JavaScript编写一个单元测试

    详解如何用JavaScript编写一个单元测试

    测试代码是确保代码稳定的第一步。能做到这一点的最佳方法之一就是使用单元测试。这篇文章主要介绍了如何用JavaScript编写你的第一个单元测试,感兴趣的可以了解一下
    2022-11-11
  • js中小数转换整数的方法

    js中小数转换整数的方法

    js中小数转换整数的方法有很多,有下退、上进、四舍五入等等,需要的朋友可以了解下本文
    2014-01-01
  • JavaScript模拟实现Promise功能的示例代码

    JavaScript模拟实现Promise功能的示例代码

    这篇文章主要为大家详细介绍了JavaScript如何模拟实现Promise功能,文中的示例代码讲解详细,对我们学习JavaScript有一定的帮助,需要的可以参考一下
    2022-12-12
  • uni-app中onBackPress()监听页面返回(更新数据)

    uni-app中onBackPress()监听页面返回(更新数据)

    这篇文章主要给大家介绍了关于uni-app中onBackPress()监听页面返回(更新数据)的相关资料,在UniApp中,可以通过监听页面刷新的生命周期函数来监听页面的返回,然后重新调用接口进行刷新,需要的朋友可以参考下
    2023-10-10
  • 屏蔽script注入小例子

    屏蔽script注入小例子

    有关script注入想必大家也有所了解,在本文将为大家介绍下如何屏蔽script注入,下面有个不错的示例大家可以感受下
    2013-11-11
  • BootStrapValidator校验方式

    BootStrapValidator校验方式

    做输入校验的时候如果你前端框架用的是bootstrap的话,首推bootstrapValidator校验方式,下面通过本文给大家分享下校验流程,一起看看吧
    2016-12-12

最新评论