2012-11-09 63 views
0

在JavaScript函數:的Javascript:簽發日期在驗證中的JavaScript函數

if (Tim2Val > Tim3Val && Tim2Val < Tim4Val) 
    return true; 
else 
    return false; 

如果我有變量,如

Tim1Val= 8:00; 
Tim2Val= 23:00; 
Tim3Val= 01:00; 
Tim4Val= 05:00 

它返回true。 (它應該返回假的。你能告訴我怎樣才能解決這個問題?)

如果我有變量,如

Tim1Val= 8:00; 
Tim2Val= 23:00; 
Tim3Val= 02:00; 
Tim4Val= 05:00; 

它返回false。

功能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

您的IF語句確實**不**考慮/使用Tim1Val。 **和**現在它是比較字符串,所以結果是正確的。 –

+0

哪些變量被初始化了? – Damask

+0

var MsTim1Val = fn_ConvTo24Format(MsTim1); var MsTim2Val = fn_ConvTo24Format(MsTim2); var MsTim3Val = fn_ConvTo24Format(MsTim3); var MsTim4Val = fn_ConvTo24Format(MsTim4); – chinna373

回答

0

也許永遠不會使用Tim1Val是問題的一部分?

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)) 

哦,彼得·威爾金森說,你永遠不會使用Tim1Val。

+0

var Tim1Val =「8:00」; var Tim2Val =「23:00」; var Tim3Val =「2:00」; var Tim4Val =「5:00」; Time3Val是次日早上2點,time4val次日上午5點 – chinna373

+0

如果您知道Tim3Val和Tim4Val是第二天,則只需爲其添加24小時。如果事先不能真正瞭解,請考慮使用Date對象來獲得更大的靈活性。 –

0

你的函數返回幾種類型的數據:字符串和數字。 使用一種使

... 
if(locAMPos!= -1) 
{ 
    return parseFloat(A[0] + '.' + A[1]); 
} 
.... 

我認爲這不是要抓緊時間比較 - 好辦法。 會更好地獲取Date類示例並使用它。