6

私はtumblrページに取り組んでいます。HTML ページには 2 つの異なる背景があり、昼の背景を午前 7 時から午後 8 時まで表示し、夜の背景を午後 8 時から午前 7 時まで表示します。

私はこれをphpで行うことにしましたが、phpに関してはまったくの初心者です。私の友人は、私が使用できるサンプルコードを送ってくれました。しかし、私はそれをどうするかわかりません。助けてくれませんか。

これがサンプルコードです。

<?php
header('content-type: text/css');

date_default_timezone_set("America/Vancouver");
$now = date('G');

if ($now < 12) {
    $bg = '#FFFFFF';
} else {
    $bg = '#000000';
}
?>

body {
    background: <?php echo $bg; ?>;
}
4

5 に答える 5

6

date()サーバーのローカルの日付/時刻を返します。つまり、サーバーが米国にある場合、たとえば東アジアやオーストラリアのユーザーには間違った背景が表示されます。

これはあなたが探していたものではないことはわかっていますが、サーバー側ではなくユーザー側で実行される JS で実行することをお勧めします。サーバーの時間。スクリプトは次のようになります。

var localDate = new Date();
if (localDate.getHours() > 7 && localDate.getHours() < 20) {
    document.bgColor = "#fff";
} else {
    document.bgColor = "#000";
}

お役に立てれば !

于 2010-12-05T06:46:09.903 に答える
1

変更してみてください:

body {
    background: <?php echo $bg; ?>;
}

に:

<body style="background-color: <?php echo $bg; ?> !important;">

あなたのPHPコードは私には問題ないようです。正午から真夜中の 12:00 までは白い背景が表示されることに注意してください。次のコードを試して、午前 7 時から午後 8 時まで白い背景を維持し、それ以外の時間は黒い背景を維持します (アーロンが言ったように)。

交換:

if ($now < 12) {
    $bg = '#FFFFFF';
} else {
    $bg = '#000000';
}

と:

if ($now < 7 || $now > 20) {
    $bg = '#000000';
} else {
    $bg = '#FFFFFF';
}
于 2010-12-05T06:22:22.563 に答える
0

昼間用と夜間用に異なる css ファイルを設定できます。

$date = getDate();

// check day or night
// it's day by default
$css = "css/main.css";

if ($date['hours'] < 7 || $date['hours'] > 20){
    // is night
    $css = "css/main-night.css";

}

次に、<meta>タグで、ページのスタイル ファイルを定義します。

    <link href="<?= $css ?>" rel="stylesheet">
于 2016-02-08T17:48:21.617 に答える
0

使用dateしている関数は、現在の時間の 24 時間形式を返しています。次に、条件付きで、現在の範囲を確認するように変更する必要があります。$nowが 7 ~ 20 の場合は、昼間の背景に設定できます。それ以外の場合は、夜間に設定してください。これを行うために詳細が必要な場合はお知らせください。

<?php
header('content-type: text/css');

date_default_timezone_set("America/Vancouver");
$now = date('G');

if ($now > 7 && $now < 20) {
    $bg = '#FFFFFF';
} else {
    $bg = '#000000';
}
?>

<body style="background-color:<?php echo $bg; ?> !important;">
 <!-- Your HTML code here -->
</body>
于 2010-12-05T06:16:46.283 に答える
0

私はこのようなものを使用しました

あなたのphp:

    function getUKTime() {

    date_default_timezone_set('Europe/London');

    $time = date('H');
    $style = "";

    if ($time >= 6 && $time <= 18) {
        $style = $style . "day";
    }
    else {
        $style = $style . "night";
    }

    echo $style;
}

あなたのhtmlで:

<div id="uk" class="<?php getUKTime(); ?>">
    <h1>U.K.</h1>
</div>

次に、.night または .day クラスのスタイルを設定します

于 2014-02-08T23:33:47.950 に答える