簡體   English   中英

時差使用 javascript, jquery

[英]Time difference using javascript, jquery

我正在嘗試找出時差並打印出來。

我采用了兩個日期字符串,並使用數學 function 並將 output 打印到

下面的代碼給出了作為NaN Nan:Nan

function CalcTimer(StartTiime, EndTime, NodetoDisplay) {
    var Start = new Date(StartTiime).getTime();
    var EndTime = new Date(EndTime).getTime();
    var Diff = StartTiime - EndTime;
    var days = Math.floor(Diff / (1000 * 60 * 60 * 24));
    var hours = Math.floor((Diff % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
    var minutes = Math.floor((Diff % (1000 * 60 * 60)) / (1000 * 60));
    var seconds = Math.floor((Diff % (1000 * 60)) / 1000);
    NodetoDisplay.html(days+" "+hours+":"+minutes+"");
}

var addTimeDiffCalculator = {
    InitializeThis : function() {
        addTimeDiffCalculator.SetUpElements();
        addTimeDiffCalculator.SetupBehaviour();
    },
    SetUpElements : function() {
        var StartDate = $('<input type="text" id="StartDate">');
        var EndDate = $('<input type="text" id="EndDate">');
        $("#EndDate").datepicker();
        var StartHr = $('<select id="StartHr">');
        for(var SH=0; SH<=23; SH++){
            $('<option />', {value: SH, text: SH}).appendTo(StartHr);
        }
        var EndHr = $('<select id="EndHr">');
        for(var EH=0; EH<=23; EH++){
            $('<option />', {value: EH, text: EH}).appendTo(EndHr);
        }
        var StartMin = $('<select id="StartMin">');
        for(var SM=0; SM<=59; SM++){
            $('<option />', {value: SM, text: SM}).appendTo(StartMin);
        }
        var EndMin = $('<select id="EndMin">');
        for(var EM=0; EM<=59; EM++){
            $('<option />', {value: EM, text: EM}).appendTo(EndMin);
        }
        var CalcButton = $('<button id="CalcButton">Calculate!</button>');
        var p1 = $('<p id="p1"> Time Diff Calculator </p>'),
            p2 = $('<p id="p2">'),
            p3 = $('<p id="p3">'),
            p4 = $('<p id="p4">'),
            p5 = $('<p id="p5">');
        StartDate.appendTo(p2);
        StartHr.appendTo(p2);
        StartMin.appendTo(p2);
        EndDate.appendTo(p3);
        EndHr.appendTo(p3);
        EndMin.appendTo(p3);
        CalcButton.appendTo(p4);
        var TimeDiv = $("<div>");
        p1.appendTo(TimeDiv);
        p2.appendTo(TimeDiv);
        p3.appendTo(TimeDiv);
        p4.appendTo(TimeDiv);
        p5.appendTo(TimeDiv);
        TimeDiv.appendTo("body");
        $("#StartDate").datepicker(); $("#EndDate").datepicker();
    },
    SetupBehaviour : function() {
        var StDate = $("#StartDate").val(),
            EnDate = $("#EndDate").val(),
            StHr = $("#StartHr").val(),
            EnHr = $("#EndHr").val(),
            Stmin = $("#StartMin").val(),
            Enmin = $("#EndMin").val();
        var StartString = StDate+" "+StHr+":"+Stmin+":00",
            EndString = EnDate+" "+EnHr+":"+Enmin+":00";   

        $("#CalcButton").click(function(){
            CalcTimer(StartString,EndString,$("#p5"));
        });
    },
};

$(document).ready(function(){
    addTimeDiffCalculator.InitializeThis();
});

我不明白哪里出了問題。 我希望這是足夠的信息來理解我的問題。

這里:

var Diff = StartTiime - EndTime;

你的意思是:

var Diff = Start - EndTime;

但它可能應該是:

var Diff = EndTime - Start;

暫無
暫無

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

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