php - 根据时间/日程交换 div 可见性

标签 php javascript jquery

在我的页面上,我有两个 div……一个 div 我希望在上午 10 点到下午 6 点(服务器时间)可见……而另一个 div 在剩余时间可见。

我尝试了一系列搜索来找到某种 javascript 或 jquery 内容交换器,但没有任何运气。感谢您的任何建议?

<div id="day">content</div>

<div id="night">content</div>

我仅使用以下 php 就可以实现此功能:

<?php
$hour = strftime("%H");
if ($hour >= 02 && $hour < 05)
{
echo '<div id="div1">content block one </div>';
}
else
{
    echo '<div id="div2">content block two</div>';
}?>

但是,如果我想显示从晚上 8 点到凌晨 4 点的 div,这个解决方案似乎不起作用……这是因为它跨越了一天以上吗?感谢您的任何建议。

最佳答案

编辑

您在评论中提到的案例很棘手。所以这是我修改后的答案:

<?php
    $t0 = 20;        // from hour (inclusive) -- int, 0-23
    $t1 = 4;         // till hour (excluding) -- int, 0-23
    $t  = date('G'); // current hour (derived from current time) -- int, 0-23
    if ($t0 == $t1) {
        $in_range = NULL;
    } elseif ($t0 < $t1) {
        $in_range = ($t0 <= $t && $t < $t1);
    } else {
        $in_range = ($t1 <= $t && $t < $t0) == false;
    }
    /*
    echo $in_range === NULL
        ? 'from and till dates must be different'
        : ($in_range ? 'just in time' : 'wait till the time is right');
    */
    if ($in_range === false) {
        $s0 = mktime($t0, 0, 0); // lunch time
        $s  = time();            // current time
        if ($s0 < $s) {
            $s0 += 60 * 60 * 24; // late for lunch! now wait till tomorrow
        }
        $d0 = $s0 - $s;
        $dh = floor($d0 / 60 / 60);
        $dm = $d0 - $dh * 60 * 60; $dm = floor($dm / 60);
        $ds = $d0 - $dh * 60 * 60 - $dm * 60;
        echo sprintf("
            Current date...: %s<br />
            Target date....: %s<br />
            Time to go.....: %d hours, %d minutes, %d seconds
            ",
            date("Y-m-d h:i:s A", $s),
            date("Y-m-d h:i:s A", $s0),
            $dh,
            $dm,
            $ds
        );
    }
?>

关于php - 根据时间/日程交换 div 可见性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6052996/

相关文章:

javascript - 根据单击的菜单项更改 DIV 背景图像

php - 未在 PHPMyAdmin 中生成用于 PHP 登录的表

javascript - 如何使用带有变量的 Javascript/Jquery 刷新特定的 div

需要 PHP Laravel Mcrypt PHP 扩展

javascript - jQuery:如何检查以确保所有异步操作已完成

jquery - 导航容器两端的 2 个 UL 菜单

php - 针对 3 种不同用户类型的数据库设计指南

javascript - 通过单击按钮覆盖 dojo 类函数

zip - 如何使用 zip.js 将多个文件添加到一个 zip 中?

javascript - 在指令模板中时,如何使 Angular ui-router ui-sref 工作?