简体   繁体   English

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

[英]How to pass PHP drop-down value to getFullYear() in JavaScript?

I've Two date-pickers, in that is select a date from first date-picker and value from drop-down list and on that basis I'm trying to calculate next date in next date-picker and on that basis I'm calculating date difference.我有两个日期选择器,即从第一个日期选择器中选择一个日期并从下拉列表中选择一个值,在此基础上我试图计算下一个日期选择器中的下一个日期,并以此为基础计算日期差异。 But when I'm passing value of drop-down to my function, it gives me wrong result.但是当我将下拉值传递给我的函数时,它给了我错误的结果。

Here is my Code:这是我的代码:

$('#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;
    }
  }

Here is the Fiddle: https://jsfiddle.net/5tfhgamL/这是小提琴: https : //jsfiddle.net/5tfhgamL/

Any kind of help is welcome.欢迎任何形式的帮助。 Thanks in advance.提前致谢。

I do not understand what is your problem but I fixed some problems on your code.我不明白您的问题是什么,但我修复了您的代码中的一些问题。

I replaced getELEdifference($('ELEdatepicker1'),$('#ELEdatepicker2'));我替换了getELEdifference($('ELEdatepicker1'),$('#ELEdatepicker2')); instead of getELEdifference($(this),$('#ELEdatepicker2'));而不是getELEdifference($(this),$('#ELEdatepicker2')); because 'this' is a selectbox not a datepicker.因为“this”是一个选择框而不是日期选择器。 And another change is adding parseInt for selectbox value and year value of the first datepicker.另一个变化是为第一个日期选择器的选择框值和年份值添加 parseInt。

Full code: jsfiddle完整代码: jsfiddle

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM