PHPを使って自動でサイトを更新するためのまとめ。
キャンペーン告知や応募受付に。
※さらにスマートな書き方をコメント欄にていただいたので追記しました。
指定日時まで表示し、過ぎたら非表示にする
<?php
if (strtotime(date('Y-m-d H:i')) < strtotime('2015-10-10 8:00'))
{
echo '2015-10-10 7:59まで表示する内容';
}
?>
##追記
<?php
if (date('Y-m-d H:i') < '2015-10-10 08:00'): ?>
2015-10-10 7:59まで表示する内容
(複数行可)
<?php endif; ?>
<?php
$closeTime = new DateTime('2015-10-10 8:00');
if (new DateTime < $closeTime): ?>
2015-10-10 7:59まで表示する内容
(複数行可)
<?php endif; ?>
指定日時を過ぎたら表示する
<?php
if (strtotime(date('Y-m-d H:i')) >= strtotime('2015-10-10 8:00'))
{
echo '2015-10-10 8:00~表示する内容';
}
?>
##追記
<?php
if (date('Y-m-d H:i') >= '2015-10-10 08:00'): ?>
2015-10-10 8:00~表示する内容
(複数行可)
<?php endif; ?>
<?php
$startTime = new DateTime('2015-10-10 8:00');
if (new DateTime >= $startTime): ?>
2015-10-10 8:00~表示する内容
(複数行可)
<?php endif; ?>
表示される期間を指定する
<?php
$foo = strtotime(date('Y-m-d H:i'));
if ($foo >= strtotime('2015-10-10 8:00') && $foo < strtotime('2015-10-10 20:00'))
{
echo '2015-10-10 8:00~19:59まで表示する内容';
}
?>
##追記
<?php
$now = date('Y-m-d H:i');
if ($now >= '2015-10-10 08:00' && $now < '2015-10-10 08:00'): ?>
2015-10-10 8:00~19:59まで表示する内容
(複数行可)
<?php endif; ?>
<?php
$now = new DateTime();
$startTime = new DateTime('2015-10-10 8:00');
$closeTime = new DateTime('2015-10-10 20:00');
if ($now >= $startTime && $now < $closeTime): ?>
2015-10-10 8:00~19:59まで表示する内容
(複数行可)
<?php endif; ?>
表示/非表示ではなく、内容を変化させたい場合
<?php
date_default_timezone_set('Asia/Tokyo');
if (strtotime(date('Y-m-d H:i')) < strtotime('2015-10-10 8:00'))
{
echo '受付中';
} else {
echo '締め切り';
}
?>
##追記
<?php
if (date('Y-m-d H:i') < '2015-10-10 08:00'): ?>
受付中
<?php else: ?>
締め切り
<?php endif; ?>
内容が複数行の場合
echoの部分を書き換える
{
echo <<< EOF
2015-10-10
7:59まで
表示する内容
EOF;
}
参考
http://liapoc.com/strtotime.html
http://sole-color-blog.com/blog/php/36/