0

目標は、ライブ チャット リンクを営業時間中にページに表示し、閉店時には表示しないようにすることです。次の PHP は、テスト サーバーでは機能しますが、クライアントのサーバーでは機能しません。一方では機能し、他方では機能しない理由はありますか? どちらも GoDaddy を通じて管理される Apache です。

PHP:

<style>
    .timeBasedLink {
    <?php
        date_default_timezone_set('America/Los_Angeles');
        $currentTime = date('H:i a');
        $openTime = "8:00 am";
        $closeTime = "6:00 pm";
        $open = DateTime::createFromFormat('H:i a', $openTime);
        $close = DateTime::createFromFormat('H:i a', $closeTime);
        $open = $open->format('H:i a');
        $close = $close->format('H:i a');
        if ($currentTime > $open && $currentTime < $close)
    { ?>
    display: block;
    <?php
    }
    else
    {
    ?>
    display:none;
    <?php
    }
    ?>
    }
</style>

HTML:

<div class="timeBasedLink">
    Put time-sensitive material here.
</div>
4

1 に答える 1

3

開閉時間には分が含まれないため、24 時間制に基づく完全な整数を使用できます。一方、開場時間は 8 (0800) で、閉場時間は 18 (1800) です。あとは簡単なif文です。わかりやすくするために、CSS の上に php を配置しました。

date_default_timezone_set('America/Los_Angeles');
$currentHour = date("H");
$openTime = 8;
$closeTime = 18;
if ($currentHour >= $openTime && $currentTime < $closeTime){
    $css = 'display:block;';
}else{
    $css = 'display:none;';
}

echo '<style type="text/css">.timeBasedLink {'.$css.'}</style>';
于 2013-11-11T21:43:21.360 に答える