2017-06-23 17 views
0

私は小さなスクリプトを使って日付に応じて特定の画像を表示しています。 これは私がこれまでに持っているものである、と私は、私は本当にそれが仕事だろうと思ったことを言っている:日付によるPHP表示画像

<?php 
$events = array(
array(
    'image' => 'img/summer.png', 
    'start' => '01-05-2017', 
    'end' => '01-09-2017' 
), 
array(
    'image' => 'img/christmas.png', 
'start' => '01-12-2017', 
'end' => '31-12-2017' 
) 
); 

foreach($events as $event) { 
if(date('d-m-Y') >= $event['start'] && date('d-m-Y') <= $event['end']) { 
    echo "<img src='".$event['image']."'>"; 
} 
} 
?> 

私は私が望む限り多くの配列を追加したい、場合には、私は特定の日付に複数の画像を表示する必要があります。私はこれがうまくいくはずだと思ったが、空白のページを返すだけだった。それがうまくいかない理由に関するアイデアはありますか?

+1

あなたのページのソースコードをチェックしましたか?あなたはイメージがそこにないと確信しているだけでリンクが壊れていますか? –

+0

正常に動作するはずです:http://sandbox.onlinephpfunctions.com/code/cc9a85d34fec9edf6eebdb4bac01becbedfb0264 @JulienLachalが言ったように、恐らくちょうど壊れたリンク – caramba

+1

それは正常に動作していません比較の日付でstrtotimeを使ってみてください – anju

答えて

2

あなたは日付を比較している間にあなたの日付をstrtotimeに変換する必要がありますので、受け入れられる結果が得られます。そうでなければ間違った比較が行われます

$events = array(
array(
    'image' => 'img/summer.png', 
    'start' => '01-05-2017', 
    'end' => '01-09-2017' 
), 
array(
    'image' => 'img/christmas.png', 
'start' => '01-12-2017', 
'end' => '31-12-2017' 
) 
); 
$date_to_compare=strtotime(date('d-m-Y')); 
foreach($events as $event) { 
if($date_to_compare >= strtotime($event['start']) && $date_to_compare <= strtotime($event['end'])) { 
    echo "<img src='".$event['image']."'>"; 
} 
} 
+0

それはそれをしました!ありがとう! – zorensen

+0

このコードをありがとうございました!私は似たようなものを探していた。年をチェックしたり、チェックしたりせずにコードを組み合わせることも可能ですか? たとえば、(あなたの例では)年にチェックします。しかし、私はそれも年なしで日付をチェックしたい(クリスマス、誕生日などは常に同じ日付に)です。特別なもの、たとえば、世界/ヨーロッパのサッカー選手権は特定の日程にあります。私が何を意味するのか理解してもらえますか? – Joanne

+1

はい可能です。しかし、さらなる解決のためのコードを提供する必要があります –