簡體   English   中英

如何在 JavaScript 中將 PHP 下拉值傳遞給 getFullYear()?

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

我有兩個日期選擇器,即從第一個日期選擇器中選擇一個日期並從下拉列表中選擇一個值,在此基礎上我試圖計算下一個日期選擇器中的下一個日期,並以此為基礎計算日期差異。 但是當我將下拉值傳遞給我的函數時,它給了我錯誤的結果。

這是我的代碼:

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

歡迎任何形式的幫助。 提前致謝。

我不明白您的問題是什么,但我修復了您的代碼中的一些問題。

我替換了getELEdifference($('ELEdatepicker1'),$('#ELEdatepicker2')); 而不是getELEdifference($(this),$('#ELEdatepicker2')); 因為“this”是一個選擇框而不是日期選擇器。 另一個變化是為第一個日期選擇器的選擇框值和年份值添加 parseInt。

完整代碼: jsfiddle

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM