【问题标题】:Calculate date+time range计算日期+时间范围
【发布时间】:2013-08-26 12:18:50
【问题描述】:

抱歉,如果重复但找不到任何可以帮助我的类似内容。

我正在使用datetime picker

我正在尝试根据 Day + time 计算日期范围

直到现在我都带着这个 在JS中

$('#calculate').click(function(event){
  event.preventDefault();
  var darrival = $('#darrival').val();
  var rdate = $('#rdate').val();
  var start = new Date(darrival);
  var end= new Date(rdate);
  var finaltime=(end-start)/1000/60/60;
  alert(finaltime);
});

但我得到的是 NaN。 我做了

console.log(start)

它显示“无效日期”

我取的值(var darrival = $('#darrival').val();) 看起来像:26-08-2013 01:08

我猜新日期不计算时间有人可以提出建议吗? 谢谢转发。

【问题讨论】:

标签: jquery


【解决方案1】:

我认为您需要在代码中更改不止一件事..

1) you need specify language and format while building datetimepicker

2) you need to get data using datpicker's api not using the textbox

请看我下面的例子,这可能对你有帮助

<body>

    <div class="well">

      <div id="rdate" class="input-append date">
        <input data-format="dd-MM-yyyy hh:mm:ss" type="text" id="date1"></input>
        <span class="add-on">
          <i data-time-icon="icon-time" data-date-icon="icon-calendar">
          </i>
        </span>
      </div>


        <div id="darrival" class="input-append">
            <input data-format="dd-MM-yyyy hh:mm:ss" type="text"  id="date2"></input>
            <span class="add-on">
                <i data-time-icon="icon-time" data-date-icon="icon-calendar">
                </i>
            </span>
        </div>



    </div>

    <input type='button' name='calculate' id='calculate' value='click this' onclick='fn1()'>

    <script type="text/javascript">
      $(function() {
        $('#darrival').datetimepicker({
            format: 'dd/MM/yyyy hh:mm:ss',
            language: 'pt-BR'
        });

        $('#rdate').datetimepicker({
            format: 'dd/MM/yyyy hh:mm:ss',
            language: 'pt-BR'
        });


      });
    </script>

    <script type="text/javascript">

        $('#calculate').click(function(event){

          event.preventDefault();
          var picker1 = $('#darrival').data('datetimepicker');
          var picker2 = $('#rdate').data('datetimepicker');
          var start = new Date(picker1.getDate());
          var end= new Date(picker2.getDate());
          var finaltime=(end-start)/1000/60/60;
          alert(finaltime);

        });
    </script>

</body>

【讨论】:

  • 使用你的例子我来TypeError: Cannot call method 'getDate' of undefined 错误所以我做了如下: var darrival = $('#darrival').val(); var rdate = $('#rdate').val(); var start=新日期(到达); var end=新日期(rdate); var finaltime=(结束 - 开始) / 1000 / 60 / 60;警报(最终时间); 固定更改的数据格式:26-08-2013 01:08 2013-08-26 01:08
【解决方案2】:

您可以使用moment.js difference method 来计算日期范围。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-14
    相关资源
    最近更新 更多