显示特定时间范围内的内容

时间:2016-06-28 00:46:31

标签: php wordpress date time

我正在尝试使用以下方式在特定日期和时间(在Wordpress中)显示内容:

if (!function_exists('isStreaming')):
    function isStreaming()
{
        date_default_timezone_set('America/Mexico_City');

        $getDateNow = date('Y-m-d');
        $getDayNow  = date('Y-m-d', strtotime($getDateNow));
        $DateBegin  = date('Y-m-d', strtotime("2016-06-28"));
        $DateEnd    = date('Y-m-d', strtotime("2016-06-28"));

        if (($getDayNow >= $DateBegin) && ($getDayNow <= $DateEnd) && is_home()) {
            locate_template(array('/layouts/home/streaming.php'), true);

        } else {
            locate_template(array('/layouts/home/ad-top.php'), true);
        }
    }
endif;

这将有效,内容将显示7月28日的整天。

但是当我试图在日期之外添加时间时,它只会显示任何一天的时间范围之间的内容,而不是尊重日期变量。

更新

我想我终于实现了我想要的目标:D

<?php
if (!function_exists('isStreaming')):
    function isStreaming()
{
        date_default_timezone_set('America/Mexico_City');

        $getDateNow = date('Y-m-d H:i');
        $getDayNow  = date('Y-m-d H:i', strtotime($getDateNow));
        $DateBegin  = date('Y-m-d H:i', strtotime("2016-06-27 08:00"));
        $DateEnd    = date('Y-m-d H:i', strtotime("2016-06-27 23:15"));

        if (($getDayNow >= $DateBegin) && ($getDayNow <= $DateEnd) && is_home()) {
            echo "YES $DateBegin";

        } else {
            echo "NO $getDayNow";
        }
    }
endif;

echo isStreaming();
?>

感谢您的想法:D

2 个答案:

答案 0 :(得分:1)

好吧,只需使用time()并检查它的状态。

$now = time();
$start = strtotime("2016-06-28");
$finish = strtotime("2016-06-29");
if($now >= $start AND $now < $finish){ 
    locate_template(array('/layouts/home/streaming.php'), true); 
} else { 
    locate_template(array('/layouts/home/ad-top.php'), true); 
}

答案 1 :(得分:0)

请使用DateTime

$Now = new DateTime("now");
$DateBegin = new DateTime('2016-06-28'); //Add your time !
$DateEnd = new DateTime('2016-06-28'); //Add your time !

if($DateBegin <= $now && $DateEnd >= $now){
    //is streaming ....
}