• ベストアンサー

日付の比較

日付で条件分岐する処理があり、今悩んでいます。 <?= date_format("Y年m月d日", $test["日付"]) ?> ↑この方法で"2007年9月6日"と取得できているのですが、 この日付が 『2007年6月7日より後で2007年10月1日より前の場合は表示させる』 という条件分岐を考えた時に『~より後』とか『~より前』 をスクリプトでどう表現して言いかわかりません。 よろしくおねがいします。

  • PHP
  • 回答数1
  • ありがとう数2

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

  • ベストアンサー
回答No.1

strtotime()という関数で数値化してやるといいんじゃないでしょうか。 <?php if (strtotime($test['日付']) > strtotime("2007/09/06") && strtotime($test['日付']) < strtotime("2007/10/01"){ echo date_format("Y年m月d日", $test["日付"]); } ?> などなど。

wf3255
質問者

お礼

ありがとうございます!! 上手くいきそうです。

関連するQ&A

  • 日付の比較について

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

    • ベストアンサー
    • PHP
  • 日付の表示~どこがおかしいでしょうか?~

    「データベースの任意のフォーム(テスト日付リスト)から今日以降の日付のデータを取得し、日付が近い順にwebページに表示する」方法を考えています。 下記のスクリプトですとデータベースの任意のフォームには9月内の日付リストが存在するのに、webページでは今月(9月)分の日付のデータは表示されず、10/1以降の日付のデータが取り出されてしまいます。 =========== <? define("FORMID_TEST", "テスト日付リスト"); function getTestDayList() { global $NBCLIENT; $testdaylist = array(); $datalist = $NBCLIENT->search(FORMID_TEST,$conditions); if (is_array($datalist)) { $testdaylist = $datalist; } return $testdaylist; } function cmp($a, $b){ $x=$a["テスト日付"]; $y=$b["テスト日付"]; if($x == $y){ return 0; } return ($x < $y) ? -1 : 1; } $seminarsortlist = getSeminarSortList(); usort($seminarsortlist, "cmp"); $today = time(); foreach ($seminarsortlist as $seminarsort) { ?> <? $view = date_format("Ymd",$seminarsort["テスト日付"]); $y = substr("$view",0,4); $m = substr("$view",4,2); $d = substr("$view",6,2); $viewflug = mktime(0,0,0,$d,$m,$y); ?> <? if ($viewflug - $today < 86400) { ?> <?=hs($seminarsort["テスト日付"]) ?> <? } ?> <? } ?> =========== どうしても解決できません。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • 日付フォーマット

    テーブルから日付データを取得してフォーマットしたいのですがうまくいきません。 DATETIME型の項目に入っている日時(Y-m-d H:i:s)を取得してY/m/dにフォーマットしようと $result = date("Y/m/d", $getdata); としたところ、結果が 1970/01/01 となってしまいました。 $getdataには存在する日時(Y-m-d H:i:s)が入っている事を確認しています 正しくフォーマットするにはどうしたら良いのでしょうか?

    • ベストアンサー
    • PHP
  • 日付からの曜日取得

    VB6を使っています。 取得した年月の一日の曜日を取得したいのですが うまくできません。formatもなぜかエラー出るんです・・・ どなたか教えてください Dim dtCurrent As Date Dim y As Integer Dim m As Integer Dim j as string Dim nWeek As Integer j=DateTime.Date() y = Mid(j, 1, 4)'年 m = Mid(j, 6, 2)'月 dtCurrent = Format(y&m&01, yyyy / mm / dd) Week = Weekday(dtCurrent) - 1 '曜日取得

  • 日付、時刻の比較について

    こんばんは。 現在、PHP4&MySQLの環境で業務アプリを 作成しております。 DBからDATE型(20060614)、TIME型(13:00:00)の データを取得して他の文字列と比較したのですが どうしてもうまく比較できません。 日付データはdate_format関数で使用して取得し strvar関数などで型変換をして比較しています。 ちなみにechoなどで実際の値を見ても同じ値でした。 やっぱり型があっていないのでしょうか? お願いします。

    • ベストアンサー
    • PHP
  • 1ヶ月後の日付を出力したい

    1ヶ月後の日付を出力したいのですが $tomorrow = mktime (0,0,0,date("m")+1,date("d"),date("Y")); phpマニュアルで上記のようなものを使って、 1970年1月1日からの通算秒を得ることが出来ましたが それとlocationtimeを使ってどうにか1ヶ月後の年月日を出せるようなのですが… やり方がどうしても分かりません。 いろいろ試したんですが、どつぼにハマって行くだけで…。 すみません、誰か助け舟を出して下さい お願いします

    • ベストアンサー
    • PHP
  • 現在の日付から、1ヶ月前にするスクリプトです。

    現在の日付から、1ヶ月前にするスクリプトです。 月を「-1」すると0月になるので、「12」になるようにしたのですが、 年が「2005」のままです。同様に「2004」になるようなやりかたを教えてください。 <script language="JavaScript"> <!-- date = new Date(); mon = date.getMonth() + 0; if (mon < 1) { mon = "12"; } document.write(date.getFullYear() + "年" + mon + "月" + date.getDate() + "日"); // --> </script>

  • その月の日付を取得するには?

    PHPなどで、今日の日付を取得し、 その月に対して1日~31日までというような 終わる日にちを取得することは可能なのでしょうか?? 現在のプログラムでPHPで日付を取得して、 例:(今日だと2004/08) などというように その後、年と月は取得できているので、 その日にち1日から31日を取得できれば、 between A and B で、その月の内容を取得できるのですが、 無理でしょうか??

  • HPUX 11iでの日付について

    AIX環境では、「env TZ=JST+63 date」コマンドで 三日前の日付が取得できたのですが、 HPUX 11iでは日付が取得できません。 結果としてはTZがJSTからEDTになってしまいます。 どうにかして、3日前を取得することは出来ませんでしょうか? 確認したところJST+では24までしか対応しておりませんでした。 HPUX 11i [TEST:root]env TZ=JST+63 date Wed May 31 03:42:48 EDT 2006 AIX 5.1 [TEST2:root]env TZ=JST+63 date Sun May 28 16:46:54 JST 2006

  • 日付の表示

    いつもお世話になっております。 早速ですが、ASPで日付の表示を考えております。 date()関数を使って取得は出来ました。 2005/06/21の表示を2005年6月21日の表示に変えたいのですが、わかりません。 VBなどですと、一発変換があったように思います。 年と月と日付で区切らないと駄目でしょうか? その際には月や日付の「06」の”ゼロ”を取り除きたいのです。 宜しくお願いします。

専門家に質問してみよう