LoginSignup
54
58

More than 5 years have passed since last update.

指定した日時によって自動で表示を切り替えたり変化させるPHPネタ

Last updated at Posted at 2015-11-23

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/

54
58
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
54
58