2016-05-16 4 views
1

有効期限が過去であればアラートを返し、それ以外の場合はOKを表示することを期待しています。
私は、スクリプトがElse "Error"ステートメントに入ることを期待していませんでした。このjavascriptが間違っている理由を説明できますか?

誰でも何が起こっているのか説明できますか?

<!DOCTYPE HTML> 
<html> 
<body> 

<div id="test"></div> 

    <script> 
    var expirymonth = "3"; 
    var expiryyear = "2017"; 

    if (expirymonth != null != null && expiryyear != null) 
    { 
     var currentDate = Date(); 
     var expiryDate = new Date(parseInt(expiryyear),parseInt(expirymonth - 1),1); 
     if (expiryDate < currentDate) 
     { 
      window.alert("Expiry Date must not be in the past."); 
     } 
     else if (expiryDate > currentDate) 
     { 
      window.alert("OK"); 
     } 
     else 
     { 
      window.alert("Error"); 
     } 
    } 
    </script> 

</body> 
</html> 
+4

var currentDate = Date(); 

を交換しては、これはタイプミスですか? 'expirymonth!= null!= null'? –

+0

ありがとうございます、はい、タイプミスです。 – kl00t

答えて

7

Date()は文字列を返します。それを日付と比較することはできません。

var currentDate = new Date(); 

(もデーヴィントライオンでコメントで指摘された明白なタイプミスを修正)

+0

が回答しました。ありがとうございました。 – kl00t

関連する問題