如何在JavaScript中将PHP下拉值传递给getFullYear()?

时间:2018-02-08 07:06:38

标签: javascript php jquery datepicker

我有两个日期选择器,就是从第一个日期选择器中选择一个日期,从下拉列表中选择值,在此基础上,我试图计算下一个日期选择器中的下一个日期在此基础上,我计算了日期差异。但是,当我将下拉值传递给我的函数时,它会给我错误的结果。

这是我的代码:

$('#ELEdatepicker1').datepicker({
    autoclose: true,
    endDate: new Date(),
    todayHighlight: true,
  });

  $('#ELEDuration').change(function(){
    var duration = $('#ELEDuration').val();
    var date2 = $('#ELEdatepicker1').datepicker('getDate');
      date2.setYear(date2.getFullYear() + duration);
      date2.setMonth(date2.getMonth());
      date2.setDate(date2.getDate());
      $('#ELEdatepicker2').datepicker('setDate', date2);
      $('#ELEdatepicker2').datepicker(date2);
    getELEdifference($(this),$('#ELEdatepicker2'));
  });

  $('#ELEdatepicker2').datepicker({
      autoclose: true,
      startDate: new Date(),
      todayHighlight: true,
    }).change(function(){
      getELEdifference($('#ELEdatepicker1'),$(this));
      alert('Are you sure ?');
      getELECurrentdifference($(this));
    });

  function getELEdifference($this1,$this2)
  {
    if($this1.datepicker("getDate") != null && $this2.datepicker("getDate") != null)
    {
      var ELEcertDiff= $this1.datepicker("getDate") - $this2.datepicker("getDate");    
      var result = ELEcertDiff / (1000 * 60 * 60 * 24) * -1;
      //$("#ELEcertDiff").text(result);
      document.getElementById("ELEcertDiff").value = result;
    }
  }

  function getELECurrentdifference($this1)
  {
    var CtrDate = new Date();
    if($this1.datepicker("getDate") != null)
    {
      var ELEcertCurrentDiff= $this1.datepicker("getDate") - CtrDate;    
      var result = Math.round(ELEcertCurrentDiff / (1000 * 60 * 60 * 24) * +1);
      //$("#ELEcertDiff").text(result);
      document.getElementById("ELEcertCurrentDiff").value = result+1;
    }
  }

以下是小提琴: https://jsfiddle.net/5tfhgamL/

欢迎任何形式的帮助。提前谢谢。

1 个答案:

答案 0 :(得分:1)

我不明白你的问题是什么,但我修复了你的代码上的一些问题。

我替换了getELEdifference($('ELEdatepicker1'),$('#ELEdatepicker2')); 而不是getELEdifference($(this),$('#ELEdatepicker2'));因为'this'是一个选择框而不是一个日期选择器。另一个变化是为selectbox值和第一个datepicker的年份值添加parseInt。

完整代码:jsfiddle