0

ユーザーの日付/時刻に基づいて自動更新されるページを設定しようとしています。

プロモーションを2週間実行する必要があり、毎日、表示される画像を変更する必要があります。http://www.thetricky.net/php/Compare%20dates%20with%20PHPを読んで、phpの時刻と日付の関数をより適切に処理していました。テストするのは少し難しいですが、基本的には行き詰まりました。

<?php
$dateA = '2012-07-16'; 
$dateB = '2012-07-17'; 

if(date() = $dateA){ 
  echo 'todays message';
}
else if(date() = $dateB){
    echo 'tomorrows message';
}
?>

上記の機能は設定が間違っていることは承知していますが、私が目指していることを説明していると思います。時間は関係ありません。とにかく日付が変わるように、深夜に切り替える必要があります。

4

4 に答える 4

2

これが必要なようです:

<?php
$dateA = '2012-07-16'; 
$dateB = '2012-07-17'; 

if(date('Y-m-d') == $dateA){ 
    echo 'todays message';
} else if(date('Y-m-d') == $dateB){
    echo 'tomorrows message';
}
?>
于 2012-07-17T13:48:45.847 に答える
2

あなたが欲しい

<?php
$today = date('Y-m-d')
if($today == $dateA) {
    echo 'todays message';
} else if($today == $dateB) {
    echo 'tomorrows message';
}
?> 
于 2012-07-17T13:51:15.160 に答える
0

一歩下がって、ファイル名で処理します。何かのようなもの:

<img src=/path/to/your/images/img-YYYY-MM-DD.jpg alt="alternative text">

したがって、スクリプトは次のようになります。

<img src=/path/to/your/images/img-<?php echo date('Y-m-d', time()); ?>.jpg alt="alternative text">
于 2012-07-17T13:49:54.410 に答える
0

日付計算を行う場合は、PHP のDateTimeクラスを使用することをお勧めします。

$promotion_starts = "2012-07-16"; // When the promotion starts

// An array of images that you want to display, 0 = the first day, 1 = the second day
$images = array( 
    0 => 'img_1_start.png',
    1 => 'the_second_image.jpg'
);

$tz = new DateTimeZone('America/New_York');

// The current date, without any time values
$now = new DateTime( "now", $tz);
$now->setTime( 0, 0, 0);

$start    = new DateTime( $promotion_starts, $tz);
$interval = new DateInterval( 'P1D'); // 1 day interval
$period   = new DatePeriod( $start, $interval, 14); // 2 weeks

foreach( $period as $i => $date) {
    if( $date->diff( $now)->format("%d") == 0) {
        echo "Today I should display a message for " . $date->format('Y-m-d') . " ($i)\n";
        echo "I would have displayed: " . $images[$i] . "\n"; // echo <img> tag
        break;
    }
}

プロモーションが に開始される07-16と、現在はプロモーションの 2 日目であるため、次のように表示されます。

Today I should display a message for 2012-07-17 (1)
I would have displayed: the_second_image.jpg
于 2012-07-17T14:08:23.607 に答える