JavaScriptでは日付が等しいかどうかを判断します.
1154 ワード
問題
祝日の案内ページを作って、まず現在の日付を獲得して、そして最近の祝日と比較して、ちょうど同じ日なら、「XX節おめでとうございます!」を提示します.ちょうど同じ日かどうかを判断する時、私は下記のコードを使いました.
解決
以下のように2日間が等しいかどうかを判断できます.
最初の種類:
1.なぜ"="判断はfalseに戻りますか?日付オブジェクトは値の種類ではなく参照の種類です.
参照タイプと値タイプの違いは、値タイプの変数:値はスタックメモリに保存されています.変数にアクセスするときに動作するのは、実際のデータ値です.参照型の変数:変数は参照またはポインタだけを保存しています.この参照またはポインタはメモリの中の位置を指しています.この位置こそが本当のデータ値を保存しています.参照型変数にアクセスしてください.このメモリ位置をスタックから取得し、データ値を探します.
ですから、Todayとvalentineを「=」で比較すると、2つのデータの値ではなく、2つの異なる参照です.この2つの参照はそれぞれ2つの異なる位置のオブジェクトを指すので、falseに戻ります.
2.getTime()の用法は、1970年1月1日の真夜中までの時間を表し、整数値を返しますので、直接比較できます.
3.date 1-date 2は、2つの日付の差のミリ秒数を返します.
4.get Month()注意すべき点は0から、つまり0,1,2...対応は1月、2月、3月……です.
祝日の案内ページを作って、まず現在の日付を獲得して、そして最近の祝日と比較して、ちょうど同じ日なら、「XX節おめでとうございます!」を提示します.ちょうど同じ日かどうかを判断する時、私は下記のコードを使いました.
var today=new Date();
var valentine=new Date(today.getFullYear(),1,14);
if(today==valentine){
alert(" !");
}else if{
...
}
デバッグする時、私はちょうどバレンタインデーの状況を測定するために、わざわざtodayをバレンタインデーに変えました.var today=new Date(2015,1,14);
結局alert部分には実行されていませんでしたが、コンソール監視後、today==valentine部分はfalseに戻り、当然スキップしました.解決
以下のように2日間が等しいかどうかを判断できます.
最初の種類:
if(date1.getTime()==date2.getTime()){
...
}
第二種類:if(date1-date2==0){
...
}
説明1.なぜ"="判断はfalseに戻りますか?日付オブジェクトは値の種類ではなく参照の種類です.
参照タイプと値タイプの違いは、値タイプの変数:値はスタックメモリに保存されています.変数にアクセスするときに動作するのは、実際のデータ値です.参照型の変数:変数は参照またはポインタだけを保存しています.この参照またはポインタはメモリの中の位置を指しています.この位置こそが本当のデータ値を保存しています.参照型変数にアクセスしてください.このメモリ位置をスタックから取得し、データ値を探します.
ですから、Todayとvalentineを「=」で比較すると、2つのデータの値ではなく、2つの異なる参照です.この2つの参照はそれぞれ2つの異なる位置のオブジェクトを指すので、falseに戻ります.
2.getTime()の用法は、1970年1月1日の真夜中までの時間を表し、整数値を返しますので、直接比較できます.
3.date 1-date 2は、2つの日付の差のミリ秒数を返します.
4.get Month()注意すべき点は0から、つまり0,1,2...対応は1月、2月、3月……です.