プロが教える店舗&オフィスのセキュリティ対策術

取得した日付を使って分岐処理を行いたいです。

現在、ブログの日付を$blogDataという中に30件ほど取得しています。
この中身は、2013.09.15 ('Y.m.d')といった形で取得・表示されています。

そこで質問なのですが、条件処理として$blogDataの取得している日付より30日未満の場合には、A.jpgという画像を表示してアナウンス、30日以上経過した場合には、B.jpgの画像を表示という条件で、表示する画像を切り替えたく思っています。

しかしながら、取得した$blogDataに対して30日以上・以下の指定方法が分かりませんでした・・・。
現在の日付から・・・、というのは幾つかあったのですが。。。

すみません、お詳しい方いらっしゃいましたら、取得した日付を使った比較?方法、または実現させる方法をアドバイス頂けないでしょうか。

宜しくお願いします。m(_ _)m

A 回答 (1件)

strtotime関数はY.m.d形式には対応していないようなので、自前でフォーマットを指定する必要があるみたいですね。



<?php

$sample = '2013.09.15';

$timezone = new DateTimeZone('Asia/Tokyo');
$date = DateTime::createFromFormat('Y.m.d', $sample, $timezone);
$now = new DateTime('now', $timezone);
$imgfile = $date->diff($now)->days < 30 ? 'A.jpg' : 'B.jpg';

header('Content-Type: text/html; charset=utf-8');

?>
<!DOCTYPE html>
<html>
<head>
<title>Sample</title>
</head>
<body>
<p><img src="<?=$imgfile?>"></p>
</body>
</html>
    • good
    • 0
この回答へのお礼

有難う御座います。

書き方も、とても勉強になりました!
$sample =に現在取得している変数を設定したら実現できました。
丁寧なご回答感謝いたします。

お礼日時:2013/09/17 17:04

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!