以下のコードの何が問題なのでしょうか?
おそらく、時刻ではなく日付だけを比較する方が簡単でしょう。私もこれをどうやって行うのかよくわからず、検索してみましたが、正確な問題は見つかりませんでした。
ちなみに、アラートで 2 つの日付を表示すると、まったく同じものとして表示されます。
私のコード:
window.addEvent('domready', function() {
var now = new Date();
var input = $('datum').getValue();
var dateArray = input.split('/');
var userMonth = parseInt(dateArray[1])-1;
var userDate = new Date();
userDate.setFullYear(dateArray[2], userMonth, dateArray[0], now.getHours(), now.getMinutes(), now.getSeconds(), now.getMilliseconds());
if (userDate > now)
{
alert(now + '\n' + userDate);
}
});
時間を含めずに日付を比較するより簡単な方法はありますか?
ベストアンサー1
私はまだJavaScriptを勉強中ですが、時間なしで2つの日付を比較するのに私が見つけた唯一の方法は、setHours
Date オブジェクトのメソッドを使用して、時間、分、秒、ミリ秒を 0 に設定します。次に、2 つの日付を比較します。
例えば、
date1 = new Date()
date2 = new Date(2011,8,20)
date2
時間、分、秒、ミリ秒は 0 に設定されますが、date1 では、date1 が作成された時刻に設定されます。date1 の時間、分、秒、ミリ秒を削除するには、次の操作を行います。
date1.setHours(0,0,0,0)
これで、時間要素を気にせずに、2 つの日付を日付としてのみ比較できるようになりました。