如何比较TimeSpan从数据库输入的TimeSpan

时间:2016-07-14 18:19:32

标签: javascript jquery

我有两次从TimeSpan课程中收到数据库

begTime = current.data('bgtime');
                    endTime = current.data('endtime');

我将它们与用户输入的两次进行比较

 $('#timeToStart').on('change', function () {
            var startTime = $('#timeToStart').val();
            sTimeHire = startTime;


        });
        $('#timeToEnd').on('change', function () {
            var endTime = $('#timeToEnd').val();
            eTimeHire = endTime;
       });


if (begTime > sTimeHire || endTime < eTimeHire) {
                        alert("yayy it works");

                    }

出于某种原因,如果sTimeHire和begTime都是晚上7点,它会进入if语句,即使它只应该在begTime更大时进入?

但是,如果我单独尝试使用endTime,它会工作,如果endTime和eTimeHire都是晚上9点,它就不会进入if语句。

我注意到,当我这样做时,begTime没有附加任何秒数         alert(begTime)

有可能因为这个原因而被认为超过了sTimeHire的07:00:00吗?

1 个答案:

答案 0 :(得分:0)

您正在使用JavaScript并比较时间。使用Date对象提供帮助。

var begTime = new Date(current.data('bgtime')).getTime(),
    endTime = new Date(current.data('endtime')).getTime();

$('#timeToStart').on('change', function() {
    var startTime = new Date($('#timeToStart').val()).getTime();
    sTimeHire = startTime;
});

$('#timeToEnd').on('change', function() {
    var endTime = new Date($('#timeToEnd').val()).getTime();
    eTimeHire = endTime;
});


if (begTime > sTimeHire || endTime < eTimeHire) {
    alert("yayy it works");
}

未经测试,但这可以帮助您理解。

Re:我的评论,这不是严格意义上的unix时间戳,因为它位于ms而不是s,但由于它在任何地方都相同,所以同样的想法适用,整数时间

编辑:按照建议从.now()切换到.getTime()。