この 25-02-2013 のような形式の日付に使用する入力フィールドから文字列を取得しました。今、文字列を今日の日付と比較したいと思います。文字列が今日の日付より古いか新しいかを知りたいです。
助言がありますか?
この 25-02-2013 のような形式の日付に使用する入力フィールドから文字列を取得しました。今、文字列を今日の日付と比較したいと思います。文字列が今日の日付より古いか新しいかを知りたいです。
助言がありますか?
<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>
単純な比較演算子を使用して、日付が別の日付よりも大きいかどうかを確認できます。
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
}
2 番目の変数を追加した理由0:00:00
は、それがないと、UTC (グリニッジ) 時間と比較され、望ましくない結果が生じる可能性があるためです。時刻を 0 に設定すると、ユーザーのローカルの午前 0 時と比較されます。
JavascriptDate
オブジェクトを使用する方が簡単です。しかし、Date
オブジェクトがフォーマットをサポートしていないため、入力文字列 (例: 25-02-2013) を「-」で解析して取得date
month
し、オブジェクトを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");
日付入力の形式が「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() オブジェクトのプロパティと比較できます。
日付の比較を行う際に覚えておく必要がある最も重要なポイント
- 正確な結果を得るには、両方の日付を同じ形式にする必要があります。
- 日時形式を使用していて、日付の比較のみを行いたい場合は、必ず関連する形式に変換してください。
これが私が使用したコードです。
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());
これはさらに最適化できますが、これにより、日付を統一形式にするために何が必要かについて明確なアイデアが得られるはずです。