计算日期+时间范围

时间:2013-08-26 12:18:51

标签: jquery

很抱歉,如果重复但无法找到任何可以帮助我的相似内容。

我正在使用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

我猜新日期不计算任何人建议的时间吗? 谢谢你们。

2 个答案:

答案 0 :(得分:2)

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

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>

答案 1 :(得分:1)

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

相关问题