web-dev-qa-db-ja.com

javascriptで文字列を今日の日付と比較する

この25-02-2013のような形式の日付に使用する入力フィールドから文字列を取得しました。次に、文字列を今日の日付と比較したいと思います。文字列が今日の日付より古いか新しいかを知りたい。

助言がありますか?

14
    <script type="text/javascript">

var q = new Date();
var m = q.getMonth()+1;
var d = q.getDay();
var y = q.getFullYear();

var date = new Date(y,m,d);

mydate=new Date('2011-04-11');
console.log(date);
console.log(mydate)

if(date>mydate)
{
    alert("greater");
}
else
{
    alert("smaller")
}


</script>
12
polin

正確な日付の比較と受け入れられた回答からの解決されたバグ

var q = new Date();
var m = q.getMonth();
var d = q.getDay();
var y = q.getFullYear();

var date = new Date(y,m,d);

mydate=new Date('2011-04-11');
console.log(date);
console.log(mydate)

if(date>mydate)
{
    alert("greater");
}
else
{
    alert("smaller")
}
13

単純な比較演算子を使用して、日付が他の日付よりも大きいかどうかを確認できます。

var today = new Date();
var jun3 = new Date("2016-06-03 0:00:00");

if(today > jun3){
    // True if today is on or after June 3rd 2016
}else{
    // Today is before June 3rd
}

0:00:00を2番目の変数に追加した理由は、それがないと、UTC(グリニッジ標準時)時間と比較され、望ましくない結果が得られる可能性があるためです。時刻を0に設定すると、ユーザーのローカルの午前0時と比較されます。

10
Marquizzo

Javascript Dateオブジェクトを使用する方が簡単です。しかし、Dateオブジェクトはあなたのフォーマットをサポートしていないので、datemonthおよびyearその後、比較のためにDateオブジェクトを使用します。

var x ='23-5-2010';
var a = x.split('-');
 var date = new Date (a[2], a[1] - 1,a[0]);//using a[1]-1 since Date object has month from 0-11
 var Today = new Date();
 if (date > Today)
    alert("great");
 else
    alert("less");
4
999k

日付入力の形式が「25-02-2013」の場合、split()メソッドを使用して、ストリングをDD、MM、およびYYYYに分割できます。

var date_string="25-02-2013";

var day  = parseInt(date_string.split("-")[0]);
var month= parseInt(date_string.split("-")[1]);
var year = parseInt(date_string.split("-")[2]);

ParseInt()関数は、文字列を整数にするために使用されます。 3つの変数は、Date()オブジェクトのプロパティと比較できます。

0
TheTurkey

日付の比較を行うときに覚えておく必要がある最も重要なポイント

  • 正確な結果を得るには、両方の日付を同じ形式にする必要があります。
  • 日付時刻形式を使用していて、日付の比較のみを行う場合は、必ず関連形式に変換してください。

これが私が使用したコードです。

           var dateNotifStr = oRecord.getData("dateNotif");
           var today = new Date();       
           var todayDateFormatted = new Date(today.getFullYear(),today.getMonth(),today.getDate());

           var dateNotif=new Date(dateNotifStr);
           var dateNotifFormatted = new Date(dateNotif.getFullYear(),dateNotif.getMonth(),dateNotif.getDate());

さて、これはさらに最適化することができますが、これは日付を統一された形式にするために何が必要かについて明確な考えを与えるはずです。

0
mitpatoliya