javascript - 动态减去日期、月份和年份,并使用 Jquery 将数据作为天数

标签 javascript jquery date

我想从另一个输入年份中减去用户输入的年份,但到目前为止我还没有成功。

我将创建一个您可以播放的片段

我想做的是制作一个输入字段(A) 以仅输入年份。然后选择任何日期并将其从 input year (A) 中减去(日期和月份固定为 31.03.input_year)...

$(document).on('change', '#year_select', function() {
  calculate();
});

$(document).on('change', '#new_date', function() {
  calculate();
});

function calculate() {
  var year_enter = $('#year_select').val();
  var current_year = year_enter+'-03-31';
  var new_date = $('#new_date').val();
  if(year_enter != '') {
    //alert(current_year);
  }
  if(new_date != '') {
    //alert(new_date);
    
    var total = new_date - current_year;
    $('#answer').val(total);
  }
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<p>Enter years (A)</p>
<input type="number" id="year_select" min="0" placeholder="Eg: 2018, 2001">

<br>

<p>Select Date (B)</p>
<input type="date" id="new_date">


<p>(A - B)</p>

<input type="text" readonly id="answer">

我总是得到 NaN 值,我猜我的减法是不正确的。我尝试使用 setDate()getDate() 等,但我不明白其中的逻辑。

提前致谢...

最佳答案

您可以使用 new Date() 将它们类型转换为日期以进行算术运算

$(document).on('change', '#year_select', function() {
  calculate();
});

$(document).on('change', '#new_date', function() {
  calculate();
});

function calculate() {
  var year_enter = $('#year_select').val();
  var current_year = new Date(year_enter + '-03-31');
  var new_date = new Date($('#new_date').val());
  if (year_enter != '') {

  }
  if (new_date != '' && year_enter != '') {

    if (current_year < new_date) {
      $('#answer').val('A must be greater than B');
      return;
    }

    var total = Math.round(Math.abs((current_year.getTime() - new_date.getTime()) / (24*60*60*1000)));

    $('#answer').val(total);
  }
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<p>Enter years (A)</p>
<input type="number" id="year_select" min="0" placeholder="Eg: 2018, 2001"><span style="opacity: 0.5;">&nbsp;this currently has fixed -month-day(-03-31) </span>

<br>

<p>Select Date (B)</p>
<input type="date" id="new_date">


<p>(A - B)</p>

<input type="text" readonly id="answer">

关于javascript - 动态减去日期、月份和年份,并使用 Jquery 将数据作为天数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52238891/

相关文章:

JavaScript 函数未触发

mysql - MySQL如何计算从日期到日期?

java - 比较方法在比较 java.util.Date 时违反了它的一般契约

javascript - 如何在 ASP.NET MVC 中为单选按钮列表分配默认值?

javascript - 第一个 url 参数与所有 url 地址混淆

javascript - 你能根据 th 关系设计一个 td 吗?

javascript - 仅在 SImpleWebRTC 中启动音频通话

javascript - 来自父级相邻元素的 ID

jquery - 确定选择了哪个单选按钮 - 自定义单选按钮标记

javascript - Momentjs 显示评估少一天