0

JavaScriptで2つの日付を比較しています

function checkCurrentDate(expiryDate){
//var currentDateStr=expiryDate;
var currentDate = new Date();
var month = currentDate.getMonth() + 1;
var day = currentDate.getDate();
var year = currentDate.getFullYear();
currentDate = month + "/" + day + "/" + year;
var dArr = currentDate.split("/");
currentDate = dArr[0]+ "/" +dArr[1]+ "/" +dArr[2].substring(2);  
var currentExpiryDateStr = expiryDate;

if(currentExpiryDateStr == currentDate){    

} 

if(currentExpiryDateStr < currentDate){

    alert("Expiry date is earlier than the current date.");
    return false;
}
}

現在、日付は「currentExpiryDateStr」にあり、「currentDate」は「11/8/12」です。この条件では、「if(currentExpiryDateStr <currentDate)」はtrueを返し、if条件に入りますがこの条件はfalseを返す必要があり、このif条件に入らないようにする必要があります。以前は機能していましたが、なぜ現在機能していないのかわかりません。

4

4 に答える 4

0
var currentDate = Date.now();
if (expiryDate.getTime() < currentDate ) {
    alert("Expiry date is earlier than the current date.");
    return false;
}

このnow()メソッドは、1970年1月1日00:00:00UTCから現在までに経過したミリ秒を数値として返します。

1970年getTime()1月1日深夜からミリ秒を返します

于 2012-11-08T06:08:12.463 に答える
0

Dateオブジェクトは、必要な処理を実行します。日付ごとに1つ作成し、通常の演算子を使用してそれらを比較します。これを試して..

function checkCurrentDate(expiryDate){

   var currentDate = new Date();  // now date object

  var currentExpiryDateStr = new Date(expiryDate);  //expiry date object

   if(currentExpiryDateStr == currentDate){    

   } 

   if(currentExpiryDateStr < currentDate){

         alert("Expiry date is earlier than the current date.");
         return false;
    }
   }

ここにフィドルがあります:: http://jsfiddle.net/YFvAC/3/

于 2012-11-08T06:05:12.190 に答える
0

文字列を比較しているので、日付オブジェクトを比較している必要があります。

有効期限が月/日/年の形式で「11/10/12」であり、年が2000年から2桁の年である場合、次を使用して日付に変換できます。

function mdyToDate(dateString) {
  var b = dateString.split(/\D/);
  return new Date('20' + b[2], --b[0], b[1]);
}

有効期限をテストするには、次のようにします。

function hasExpired(dateString) {
  var expiryDate = mdyToDate(dateString);
  var now = new Date();
  return now > expiryDate;
}

したがって、2012年11月8日:

hasExpired('11/10/12'); // 10-Nov-2012 -- false
hasExpired('6/3/12');   // 03-Jun-2012 -- true

このhasExpired関数は次のように置き換えることができます。

if (new Date() > mdyToDate(dateString)) {
  // dateString has expired
}
于 2012-11-08T06:12:27.303 に答える
-1

if条件の前にこの2行を追加するだけです

currentExpiryDateStr=Date.parse(currentExpiryDateStr);
currentDate=Date.parse(currentDate);
于 2012-11-08T06:05:42.193 に答える