我有两次从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吗?
答案 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()。