0

startdatetime と enddatetime の差を計算したい

ここに私のhtmlコードがあります:

StartDate:<input size="16" type="text" placeholder="YYYY-MM-DD" id="from_date" name="from_date" value="">

Enddate:<input size="16" type="text" placeholder="YYYY-MM-DD" id="to_date" name="to_date" onchange="calservicedays();" value="">

StartDate:2013-09-07 11:09:40

Enddate:2013-09-08 11:15:50

以下は私のJavaScriptコードです

function calservicedays(){
    var start = $("#from_date").val();
    var startDate = new Date(start);    
    var end = $("#to_date").val();
    var endDate = new Date(end);
    var startcom =  Date.parse(start);
    var endcom = Date.parse(end);
    var diff = Math.floor((endDate.getTime() - startDate.getTime()) / 86400000);
    if((startDate != null && endDate != null) && (start != '' && end != '')){
        if((startDate != null && endDate != null) && (start != '' && end != '') && (startcom < endcom)){
            var diff = Math.floor((endDate.getTime() - startDate.getTime()) / 86400000);
            if(diff != "")
              $("#service").val(diff);
        }else{
                alert("To Date cannot be less than or equal to From date");
                 $("#service").val('');
                return false;
            }
    }
 }

このJavaScriptコードを使用すると、日数の違いが得られます。時間だけでなく、日数の差も欲しいです。

日付と時刻の差を得るために JavaScript コードにどのような変更を加える必要があるか教えてください。

ありがとう

4

3 に答える 3

1
var k=Math.round(Math.round(new Date(2013,09,08,11,15,50)-new Date(2013,09,07,11,09,40)) / 86400000);
var k1=Math.round(new Date(2013,09,08,11,15,50)-new Date(2013,09,07,11,09,40)) % 86400000;
var h=Math.round(k1/3600000);
var h1=k1%3600000;
var m=Math.round(h1/60000);
var m1=h1%60000;
var s=Math.round(m1/1000);
var s1=s%1000;
alert("diff" +k+"days"+h+"hours"+m+"minutes"+s+"seconds"+s1+"milliseconds");
于 2013-09-07T06:58:51.847 に答える
1

日付オブジェクトを使用すると、このDate Nice Functionを簡単に参照できます

jsfiddle

var date1 = new Date("7/11/2010");
var date2 = new Date("12/12/2010");
var timeDiff = Math.abs(date2.getTime() - date1.getTime());
var diffDays = Math.ceil(timeDiff / (1000 * 3600 * 24)); 
alert(diffDays);
于 2013-09-07T06:32:37.010 に答える
1

これを試して、

var start = $('#arr_date').datepicker('getDate');
var end   = $('#dep_date').datepicker('getDate');
var days   = (end - start)/1000/60/60/24;

$(function() {
  var start = $('#arr_date').val();
  var end = $('#dep_date').val();
  var diff = new Date(end - start);
  var days = diff/1000/60/60/24;
  $('#num_nights').val(days);  
});

var date_diff = Math.abs((date2.getTime() - date1.getTime())/86400000);
于 2013-09-07T06:35:18.083 に答える