
日付の比較する関数でreturnの部分の上3つの出力結果は一見正しく見えるようなのですが正しくないそうです、最後の行が正しいそうです
その理由を説明お願いします
function isToday(date) {
const today = new Date();
return date.getTime() === today.getTime(); // ダメ
return date.getDate() === today.getDate(); // ダメ
return date.toUTCString() === today.toUTCString(); // ダメ
return date.toDateString() === today.toDateString(); // OK
}
const tomorrow = new Date();
tomorrow.setDate(tomorrow.getDate() + 1);
const yesterday = new Date();
yesterday.setDate(yesterday.getDate() - 1);
console.log(isToday(new Date()));
console.log(isToday(tomorrow));
console.log(isToday(yesterday));
No.1ベストアンサー
- 回答日時:
こんにちは
Dateオブジェクトは、基本的にミリ秒単位での値を保持しています。
「日付の比較」をしたいのなら、時刻以下の相違は無視するような判定が必要になります。
その点では、getTime()、toUTCString()は時刻以下も含むので適切ではありません。
一方で、getDate()は日にちだけの比較になるので、年、月が異なっていても同じと判断してしまいます。
ご提示のサンプルでは、1日ずらして比較していますけれど、1時間やひと月ずらして比較してみれば、違う結果が出ますので意味がわかると思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Matlabで自作関数をオーバーロード
-
functionから別のfunctionを実...
-
JAVAスクリプトで指定時間以降...
-
ページ内に複数表がある場合のT...
-
複数のxmlを同ページに読み込み...
-
クロージャーの利点が理解できない
-
クリックすると上に開くアコー...
-
要素名がスペースを含む場合のj...
-
関数でy=g(x)のgとは何の略です...
-
jQueryを利用したアコーディオ...
-
同じIDで定義した要素の配列を...
-
onclickとonkeypressの重複
-
【正規表現】【javascript】CR...
-
ASP.NETのコントロールの値をJa...
-
onchangeイベントを使ってspan...
-
「nullまたはオブジェクトでは...
-
nullまたはオブジェクトではあ...
-
gas スプレッドシートがアクテ...
-
同じ型【ハイフンと数字】だけ...
-
jQueryのload()を使用して外部...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
functionから別のfunctionを実...
-
idを使わずにonclickで自身の要...
-
関数でy=g(x)のgとは何の略です...
-
クリックすると上に開くアコー...
-
Matlabで自作関数をオーバーロード
-
XMLHttpRequestでキャッシュを...
-
javascriptのenchantの打ちミス
-
ASP 最終日の表示
-
javascriptのレキシカルスコー...
-
jQueryでのレスポンシブが綺麗...
-
jQueryを利用したアコーディオ...
-
イベントハンドラの関数の引数...
-
getElementByIdを使用したグロ...
-
関数名をテキストから読み込む...
-
delphi6を使っています。
-
JavaScript 宣言 について
-
Ajaxでデータベース(PostgreSQL)
-
functionはhtmlやjsに2度使えま...
-
Javascriptの丸括弧の意味
-
JavaScript/jQuery で元画像フ...
おすすめ情報