• ベストアンサー

Dateオブジェクトの大小比較のしかた?

こんにちは,よろしくお願いします。 Dateオブジェクトを次のように作成しました。 var today = new Date(2008,8,21); var theday = new Date(2008,8,21); このようにすれば,同じ日付になると思うのですが, if(today == theday){ alert("=="); }else{ alert("!="); } として,判定すると != が表示されます。Dateオブジェクトの大小判定(日付の前後の比較)はどのように行うのでしょうか?(できないのかな???) 教えていただきたいと思います。よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

newで作成したオブジェクトの比較だからだろうと思います if (today.toString() == theday.toString()) としてやれば 期待する結果になります

emikouji
質問者

お礼

redfox63さん,ありがとうございました。 これからもよろしくお願いします。

emikouji
質問者

補足

redfox63さん,ありがとうございました。 > newで作成したオブジェクトの比較だからだろうと思います ただ,オブジェクトの大小の比較はできない?のでしょうか? today < theday のような比較もできないのでしょうか? できれば,教えていただきたくお願い申し上げます。

その他の回答 (3)

noname#84373
noname#84373
回答No.4

Dateオブジェクトの、.getTime()で得られる数値は 1970/01/01 00:00:00.000 からのミリ秒数を返す。 つまりそれを、24*60*60*1000ミリ秒で割ることで、整数部が日数となる それを比較すれば、日数の比較は可能なのだけれど。

emikouji
質問者

お礼

_pipi_さんありがとうございました。 なるほど,そういう値があるのですなね,とても勉強になりました。 これからもよろしくお願いします。

noname#84373
noname#84373
回答No.3

<html> <body> <script type="text/javascript"> var t1 = new Date(2009,1,1,0,0,0); var t2 = new Date(); alert('正月まで'+((t1.getTime()-t2.getTime())/24/60/60/1000|0)+'日です'); </script> </body> </html>

noname#84373
noname#84373
回答No.2

<html> <body> <script type="text/javascript"> var t1 = new Date(); alert('wait'); var t2 = new Date(); alert(['t1='+t1.getTime(),'\nt2='+t2.getTime(),'\n時間差='+(t2.getTime()-t1.getTime())/1000+'秒']); </script> </body> </html>

関連するQ&A

  • 配列の比較について

    Javascritpで配列全体の比較を行いたいのですが 下の結果が「違います」のように表示させたいのです。 比較の部分はどのように書いたらよいのでしょうか? var a1 = new Array(); var a2 = new Array(); a1['a'] = 1; a1['c'] = 2; a2['a'] = 1; a2['c'] = 3; //=========== 以下の配列の比較方法 if (a1 == a2){ alert('同じです'); } else { alert('違います'); }

  • オブジェクトの作成

    あるHPで以下のようなことがかかれていました。 ------------------------------------------------- この例では Java 環境ですでに存在するクラスからオブジェクトを作成する。しばしば、 Java オブジェクトは次のような文で作成される。 Date today = new Date(); これにより、新規 Dateオブジェクトが作成される。 ------------------------------------------------- で、どれがオブジェクトなんですか? todayがオブジェクトなんでしょうか? BASICならわかるのですが、オブジェクト指向ってさっぱりまかりません。だれか助けてください。

    • ベストアンサー
    • Java
  • JSTのDateオブジェクトが作りたい

    「JST」の日付オブジェクトを作りたいのですが、 どうすれば良いでしょうか? java.util.Dateクラスを new Date() でオブジェクトを作ると Thu Jul 23 19:47:50 UTC 2009 と、UTCになってしまいます...。

    • ベストアンサー
    • Java
  • アクションスクリプトについて

    今、毎月決まった日になったら表示させるというのをやりたくて がんばってみたのですがいまいちわかりません。 スクリプトは onClipEvent(load){  stop();  function update(){   var nowDate = new Date();   var Day = nowDate.getDate();   if (Day == 1){    this.gotoAndStop("today");   }else if(Day == 16){    this.gotoAndStop("today");   }else    this.gotoAndStop("a");   } } onClipEvent(enterFrame){ update(); } こんな感じです。(まったく自身がありません。) いまいち変数のところがわかりません。オブジェクトの生成とか・・・ PCの日付の方は変えてありますが、表示がされません。 今後は「次回の何回目は後何日」って感じに出来たらと思っています。 これについてもよかったら何かアドバイスお願いします。

  • Date型オブジェクトから日付のみ取得し、Integer型にしたい

    Date型のオブジェクトから日付(ddの部分)を取得し、 その取得した日付をInteger型に変換して、Integerオブジェクトに入れたいのですが・・ うまく説明できないですが、例えば 「2002/8/12」の値を持つDate型オブジェクトから、 日付の「12」を取得し、Integer型オブジェクトに入れる→new Integer(12); という事をしたいんです。 Date型オブジェクトから日付のみ取得する方法を ご存知の方、教えて下さい。

    • ベストアンサー
    • Java
  • windowオブジェクトの操作

    登録フォームを作成しています。 登録内容に誤りがなければ次のページへ飛び、登録内容に誤りがある場合は再度同じページで登録させる(次のページにはいかないようにさせたい。)というふうにしたいのですがどうすればよいでしょうか? function mailcheck(){ var tmail = document.form.temail.value; var mail = document.form.email.value; if(tmail != mail){ window.alert("E-Mailが一致しません!"); ★ } else if((tmail == "") | (mail == "")){ window.alert("E-Mail記入されていません! "); ★ } } <input type="submit" value="確認" name="submit" onclick="mailcheck()"> この場合は★マークの所でwindowオブジェクトだけで操作できるのでしょうか?

  • JUnit4での日付の大小比較について

    JUnit4での日付の大小比較について /* 環境 */ JDK 6.0 Update17 eclipse 3.5 JUnit4.7 初めてJUnit4を使ってテストコードを書いてみようと思ったのですが、 日付の大小比較についての記述がわかりません。 例えば、次のコードでyourBirthdayがmyBirthdayよりも後の日付である(大きい)ことを確認するには どのように書いたらよいのでしょうか? import static org.junit.Assert.*; import static org.hamcrest.CoreMatchers.*; ... ... Date myBirthday = ... Date yourBirthday = ... assertThat(myBirthday, is(notNullValue()); assertThat(yourBirthday, is(notNullValue()); // yourBirthday > myBirthday であることを確認したい assertThat(yourBirthday, /* ??? */); ご教示よろしくお願いします。

    • ベストアンサー
    • Java
  • Cシェルでの文字列大小比較

    Cシェルで set AA="aa" set BB="bb" if( $AA > $BB )then echo "$AA > $BB" endif というような判定がしたいのですが、 上記の場合、”if: 条件式構文が正しくありません”というエラーが出力されます。 Cシェルの場合、文字列の比較は ifでイコールかノットイコールかは判定できますが、文字コードの大小比較が出来ないようですが、 文字列の大小比較をするにはどうすればよいのしょうか

  • 日付の比較について

    PHPで日付を比較したいのですが、、 どのようにしたらよいかわかりません。 データベースのように大なり小なりで比較できるのでしょうか? 例えば、下記のように記述した場合は日付比較は正常に行われているのでしょうか? 今日の日付 $date = date('Y-m-d'); DBから取得した日付 $str_date = '2005-05-22'; if($date < $str_data){ 処理1 }else{ 処理2 }

    • ベストアンサー
    • PHP
  • ネストしない複数のif文でelseは必要でしょうか

    if文についての疑問を質問させてください。 if文はelseを挟むことで複数指定したり入れ子にしたりして使えますが、 elseを未入力で下記のように複数指定することは問題があるのでしょうか。 また、このように24個のifを並べるという書き方はよろしくないものなのでしょうか。 <script type="text/javascript"> (function() { var image_obj = new Image(); image_obj.src = "../image/"; var jikan_obj = new Date(); var htime = jikan_obj.getHours(); if(htime==0){alert('日が変わりました');} if(htime==1){alert('夜中です');} if(htime==2){alert('2時です。');} if(htime==3){alert('真夜中です');} if(htime==4){alert('もうじき朝です');} if(htime==5){alert('新聞が届きました');} if(htime==6){alert('朝です');} if(htime==7){alert('忙しいです');} //これが23まで続きます。 if(htime==23){alert('もうじき日が変わります');} })(); </script>

専門家に質問してみよう