首页 > 解决方案 > 从 arrValue.start_date 未定义

问题描述

我试图从我的数据库中获取 start_date 和 end_date,但是,无论输入如何,我都在控制台中从 arrValue.start_date 或 arrValue.(x) 获取“未定义”。

        unavailabletimes = [];
        is_conflict = false

        $.ajax({
          url: '<%= preload_parking_path(@parking) %>',
          dataTyp: 'json',
          success: function(data) {

            $.each(data, function(arrID, arrValue){
              unavailabletimes.push([moment(moment.utc(arrValue.start_date).format('YYYY-MM-DD HH:mm')), moment(moment.utc(arrValue.end_date).format('YYYY-MM-DD HH:mm'))] );
              console.log(arrValue.start_date);
                })


              var prestart_date = $('#reservation_start_date').datetimepicker('viewDate');
              var start_date = moment(moment(prestart_date).format('YYYY-MM-DD HH:mm'));
              var preend_date = $('#reservation_end_date').datetimepicker('viewDate');
              var end_date = moment(moment(preend_date).format('YYYY-MM-DD HH:mm'));

              if(end_date.diff(start_date, 'minutes') < 60){
                var duration = 60;
              }else{
                if((end_date.diff(start_date, 'minutes') % 60) == 0){
                  var duration = end_date.diff(start_date, 'minutes');
                }else{
                  var duration = ((end_date.diff(start_date, 'minutes') - (end_date.diff(start_date, 'minutes') % 60)) + 60);
                }
              }

              unavailabletimes.forEach((unavailabletime)=> {
                // unavailabletime = [moment, moment]
                // check with start time and end time
                if (start_date <= unavailabletime[0] && end_date >= unavailabletime[1]) {
                  is_conflict = true
                }
              });

              if(is_conflict) {
                $('#message').text("Cannot overlap existing bookings!");
                $('#preview').hide();
                $('#btn_book').attr('disabled', true);
              } else {
                var total = duration/60 * <%= @parking.price %>;
                $('#message').text("");
                $('#preview').show();
                $('#btn_book').attr('disabled', false);
                $('#reservation_hours').text(duration/60);
                $('#reservation_total').text(total);

              }
        }

      });

arrValue 本身有效,它返回数据库条目,但添加 .(x),即 start_date 或 end_date。

这是我的 arrValue 控制台

这可能是什么原因?我想要做的是设置一个不允许重叠预订到小时的预订系统。我正在尝试检索 start_date 和 end_date 之间的时间间隔。将其推入不可用时间以查找冲突。我是编码新手,所以如果有点混乱,我深表歉意。

标签: javascript

解决方案


推荐阅读