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实现获取一个日期段内每天不同的价格(计算入住总价格),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

您可能感兴趣的文章:

  • js 两个日期比较相差多少天的实例
  • JS获取日期的方法实例【昨天,今天,明天,前n天,后n天的日期】
  • js Date()日期函数浏览器兼容问题解决方法
  • WdatePicker.js时间日期插件的使用方法
  • JavaScript+HTML5实现的日期比较功能示例
  • JavaScript输出所选择起始与结束日期的方法
(0)

相关推荐

  • js 两个日期比较相差多少天的实例

    如下所示: var day1 = new Date("2017-9-17"); var day2 = new Date("2017-10-18"); console.log((day2 - day1) / (1000 * 60 * 60 * 24)); 以上这篇js 两个日期比较相差多少天的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • js Date()日期函数浏览器兼容问题解决方法

    一般 直接new Date() 是不会出现兼容性问题的,而 new Date(datetimeformatstring) 常常会出现浏览器兼容性问题,为什么,datetimeformatstring中的某些格式浏览器不兼容. 1. 无参 //无参 所有浏览器都兼容 var dateTime = new Date(); 2.日期参数 //日期参数 格式1 var dateTime = new Date("2017-09-12"); a. IE > IE9-(不兼容) > IE

  • JavaScript输出所选择起始与结束日期的方法

    本文实例讲述了JavaScript输出所选择起始与结束日期的方法.分享给大家供大家参考,具体如下: 一直在用公司的报表工具做报表,报表里最常用的查询条件就是开始日期.结束日期. 自己会一点html和js,于是就想用html+JavaScript来实现选择查询日期,以及做出相应. 实现之后,觉得这个还是比较简单的,N年前学的html和javascript,总算是派上用场了,人人都可以开发网页. 这个代码要在谷歌的chrome浏览器中,日期选择才能有效果(代码中的input元素Type属性值date

  • WdatePicker.js时间日期插件的使用方法

    本文介绍了WdatePicker.js时间插件使用,分享给大家,具体如下: 引用: 在项目中引用"plugin-clander"文件夹. 在html中引用"WdatePicker.js"即可. <script src="js/plugin-clander/WdatePicker.js"></script> 1.没有对控件进行设置 <input class="Wdate" type="te

  • JS获取日期的方法实例【昨天,今天,明天,前n天,后n天的日期】

    本文实例讲述了JS获取日期的方法.分享给大家供大家参考,具体如下: 原理很简单,一天的时间的毫秒数是1000*60*60*24, 前n天的日期就是现在日期换成毫秒-n*1000*60*60*24. 再把这个值换成日期即可(通过setTime方法) <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> &l

  • JavaScript+HTML5实现的日期比较功能示例

    本文实例讲述了JavaScript+HTML5实现的日期比较功能.分享给大家供大家参考,具体如下: 这里要在前面的文章<JavaScript实现设置默认日期范围为最近40天的方法>基础之上,进一步校验开始日期.结束日期是否合理. 比如:开始日期要小于等于结束日期,还有实现只能查询最近40天内的数据(设定为:结束日期减去开始日期要小于等于41,设为40也可以,关键看需求),如果要查询超过40天的数据,会直接报错. 在报错时,不会显示具体的错误,比如:结束日期大于当天日期,或者开始日期大于当天日期

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

    代码例子 最近在做酒店的小程序项目开发,遇到一个这样的问题. 酒店的房间价格是浮动的,每天每时或某个特殊的日期价格等都是浮动的不一样.如果用户选择了未来5天的住房的话,而这5天刚好价格还都不一样还有特殊日的价格,如何计算出一个5天的总价格呢? 下面的例子是根据入住的日期,和离店的日期来列出这一个日期段内的所有日期: 这个功能你会有几个地方用到,所以要封装下:单独建一个js文件 function Thedatefor(times,objroom){ // 日期段 objroom房间价格表,有星期和

  • JavaScript实现的一个日期格式化函数分享

    由于在工作中,经常需要对日期进行格式化,不像后端那样,有方便的方法可调用,可以在date的对象prototype中定义一个format方法,见如下: 复制代码 代码如下: // 日期时间原型增加格式化方法 Date.prototype.Format = function (formatStr) {     var str = formatStr;     var Week = ['日', '一', '二', '三', '四', '五', '六']; str = str.replace(/yyyy

  • python获取指定日期范围内的每一天,每个月,每季度的方法

    1.获取所有天,返回一个列表: def getBetweenDay(begin_date): date_list = [] begin_date = datetime.datetime.strptime(begin_date, "%Y-%m-%d") end_date = datetime.datetime.strptime(time.strftime('%Y-%m-%d',time.localtime(time.time())), "%Y-%m-%d") whil

  • JavaScript如何获取一个元素的样式信息

    跨浏览器方法 function getStyle(elem, cssprop, cssprop2){ if(elem.currentStyle){ return elem.currentStyle[cssprop] }else if(document.defaultView && document.defaultView.getComputedStyle){ return document.defaultView.getComputedStyle(elem, "").g

  • ThinkPHP中获取指定日期后工作日的具体日期方法

    思路: 1.获取到查询年份内所有工作日数据数组 2.获取到查询开始日期在工作日的索引 3.计算需查询日期索引 4.获得查询日期 /*创建日期类型记录表格*/ CREATE TABLE `tb_workday` ( `did` int(11) NOT NULL AUTO_INCREMENT, `exact_date` varchar(32) NOT NULL COMMENT '具体日期:格式date("Ymd");(20170205)', `date_year` varchar(32)

  • JavaScript获取一个范围内日期的方法

    本文实例讲述了JavaScript获取一个范围内日期的方法.分享给大家供大家参考.具体分析如下: 指定开始和结束时间,范围该范围内的所有日期放入数组 Date.prototype.addDays = function(days) { var dat = new Date(this.valueOf()); dat.setDate(dat.getDate() + days); return dat; }; function getDates(startDate, stopDate) { var da

  • JavaScript获取css行间样式,内连样式和外链样式的简单方法

    [行间样式获取] <div id='div1' style="backgroud:red">测试</div> <script> var odiv=document.getElementById('div1'); //先获取到要获取样式的元素标签,也就是获取到div1 console.log(odiv.style.background); //这样我们就可以获取到了行间的样式了 </script> [内连样式获取] <html>

  • JavaScript计算两个日期时间段内日期的方法

    本文实例讲述了JavaScript计算两个日期时间段内日期的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: /*************************  * 计算两个日期时间段内所有日期  *   * @param value1  *            开始日期 YYYY-MM-DD  * @param value2  *            结束日期  * return 日期数组  */  function dataScope(value1, value2

  • JS获取一个表单字段中多条数据并转化为json格式

    如图需要获取下面两个li标签里面的数据,然后传给后台:而后台接收的数据格式是json的,所以需要把两个li里面的信息转化为以下格式的. {recieverName:小红,recieverPhone:12341234,recieverAddress:中国湖南},{recieverName:小明,recieverPhone:12345678,recieverAddress:中国上海} 代码如下: var recieverArr = []; //全局变量 var recieverMsg = {}; /

  • 用vbs判断一个日期是否在指定的时段内

    问: 您好,脚本专家! 如何判断一个日期是否在指定的时段内? -- JW 答: 您好,JW. 真是巧啊,今天早上在上班的路上,我们听到有两个不同公司的不同的广告,他们都用"七月中的圣诞节"招揽顾客. 这促使着我们一到办公室就立即回答您的问题. 毕竟,如果这些公司都有一份您正在寻找的脚本,他们可能就会知道七月没有圣诞节. 注意: 当然,我们也可能记错了圣诞节的时间,所以也许您应该给所有的脚本专家送一份礼物,以防万一. 那么我们如何才能知晓圣诞节不在七月呢? 只需运行以下脚本即可: 复制代

随机推荐