在Javascript函数中:
if (Tim2Val > Tim3Val && Tim2Val < Tim4Val)
return true;
else
return false;
如果我有像
这样的变量Tim1Val= 8:00;
Tim2Val= 23:00;
Tim3Val= 01:00;
Tim4Val= 05:00
它回归真实。 (它应该返回false。你能告诉我我们如何解决这个问题吗?)
如果我有像
这样的变量Tim1Val= 8:00;
Tim2Val= 23:00;
Tim3Val= 02:00;
Tim4Val= 05:00;
它返回false。
function fn_ConvTo24Format(MsTimeVal) { 如果(MsTimeVal == '') { 返回-1; } var A = MsTimeVal.split(/ \ D + /); var locAMPos = MsTimeVal.indexOf('AM'); var locPMPos = MsTimeVal.indexOf('PM');
if(locAMPos ==-1 && locPMPos ==-1)
{
return MsTimeVal;
}
if(locAMPos!= -1 && A[0] + '.' + A[1]=='12.00' )
{
return 0;
}
if(locPMPos!= -1 && A[0] + '.' + A[1]=='12.00' )
{
return 12;
}
if(locAMPos!= -1 && A[0] + '.' + A[1]=='12.00' )
{
return 0;
}
if(locAMPos!= -1)
{
return A[0] + '.' + A[1];
}
if(locPMPos!= -1)
{
return (parseFloat(A[0]) + 12) + '.' + A[1];
}
return MsTimeVal;
}
答案 0 :(得分:0)
也许永远不会使用Tim1Val是问题的一部分?
答案 1 :(得分:0)
我认为这些值以字符串形式出现。如果你比较两者,Javascript会将它们转换为数字,从而有效地改变它们的价值。
“8:00”变为8,忽略分钟。
也许将你的小时和分钟转换为几分钟:
function toMinutes (value) {
var parts = value.split(":");
return Number(value[0]) * 60 + Number(value[1]);
}
var Tim1Val = "8:00";
var Tim2Val = "23:00";
var Tim3Val = "2:00";
var Tim4Val = "5:00";
if (toMinutes(Tim1Val) > toMinutes(Tim3Val) && toMinutes(Tim2Val) < toMinutes(Tim4Val))
哦,正如Peter Wilkinson所说,你永远不会使用Tim1Val。
答案 2 :(得分:0)
您的函数返回几种类型的数据:字符串和数字。 使用一种类型make
...
if(locAMPos!= -1)
{
return parseFloat(A[0] + '.' + A[1]);
}
....
我认为进行时间比较不是好方法。 最好获得Date类示例并使用它。