• ベストアンサー

PHPで現在日から3日以内と7やると strtot

PHPで現在日から3日以内と7やると strtotime(date('Y/m/d 00:00:00') . '-3day'); でできますか?

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

  • ベストアンサー
  • 4017B
  • ベストアンサー率73% (1341/1821)
回答No.1

出来ないですね。単純に記述ミスもありますが、質問文の例に倣うと3日以内では無くて「現在時刻から3日前」という意味になります。 ○ strtotime(date('Y/m/d 00:00:00'), '-3 day'); //関数内の引数は , で繋ぐ。 × strtotime(date('Y/m/d 00:00:00') . '-3day'); そもそも「3日以内」という定義があいまいで、PHPを含めたプログラム言語では人間の様なあいまいな処理は出来ないので。具体的に何をどうするのかを、細かく細分化してコードに記述して処理を命令してやる必要があります。 質問者がやりたい事は何でしょうか?

akio123
質問者

お礼

ありがとうございます。

その他の回答 (1)

  • 4017B
  • ベストアンサー率73% (1341/1821)
回答No.2

すいません。自分がPHPの strtotime関数の挙動を勘違いしてました。strtotime関数内部では自動的に文字列に変換されるので、連結子(ドット演算子)も有効になりますね。 $my_str = '2021/08/14'; $mdf0 = strtotime( $my_str ); $mdf1 = strtotime('now -3day'); $mdf2 = strtotime('now +3day'); if ( $mdf0 > $mdf1 && $mdf0 < $mdf2 ) { echo 'within!'; } else { echo 'not match...'; } ~こんな感じでやれば、指定代入された「日付」が「現在の時刻から起算して±3日の範囲内」にあるのかどうかを判別可能です。

関連するQ&A