2010-12-05 8 views
6

Ich arbeite an einer Tumblr-Seite. Ich habe zwei verschiedene Hintergründe für die HTML-Seite und ich möchte, dass der TAG-Hintergrund von 7 bis 20 Uhr und der Nachthintergrund von 20 bis 7 Uhr angezeigt wird.Ändern Hintergrund für Night & Day mit PHP?

Ich entschied mich, dies in PHP zu tun, aber ich bin insgesamt neu, wenn es um PHP geht. Mein Freund hat mir einen Beispielcode geschickt, den ich benutzen könnte. Aber ich habe keine Ahnung was ich damit anfangen soll. Kannst du mir helfen?

Hier ist der Beispielcode.

<?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; ?>; 
} 
+0

Haben Sie in Erwägung gezogen, die Sonnenuntergangszeit zu überprüfen, anstatt Tag- und Nachtzeiten explizit anzugeben? http://php.net/manual/en/function.date-sunset.php –

Antwort

0

Die date Funktion Sie verwenden wird das 24-Stunden-Format der aktuellen Stunde zurück. Als nächstes sollten Sie in der Bedingung ändern, um zu überprüfen, in welchem ​​Bereich Sie sich befinden. Wenn $now zwischen 7 und 20 ist, können Sie es auf den Tageshintergrund einstellen. Ansonsten stellen Sie es auf die Nachtzeit ein. Lassen Sie es mich wissen, wenn Sie mehr Details dazu benötigen.

<?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> 
+0

lol, ja. Ich habe das bemerkt und habe bereits geforscht, wie ich das php sagen kann. Ich muss nur wissen, wie man es auf der HTML-Webseite implementiert. Es verwirrt mich ein wenig. Zumal das html nicht auf meinem Server ist. –

+0

Wow, so einfach ist das? Danke dafür. Wie würde ich die PHP-Datei aufrufen, da sich das HTML auf einem Remote-Server befindet? –

1

Ändern Versuchen:

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

zu:

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

Sie PHP-Code erscheint mir in Ordnung zu sein. Beachten Sie, dass zwischen 12:00 Uhr und Mitternacht ein weißer Hintergrund angezeigt wird. Probieren Sie den folgenden Code aus, um einen weißen Hintergrund von 7:00 Uhr morgens bis 20:00 Uhr abends und einen schwarzen Code zu behalten (wie Aaron sagte).

ersetzen:

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

mit:

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

Die date() den Server lokales Datum/Zeit zurückzukehren, was bedeutet, dass, wenn Ihr Server in den USA, einen Benutzer aus Ostasien oder Australien zum Beispiel wird den falschen Hintergrund sehen.

Ich weiß, das ist nicht das, was Sie gesucht haben, aber ich würde es mit JS, die Benutzer-Seite statt Server-Seite ausgeführt wird, und daher die Zeitzone spielt keine Rolle, weil das Skript wird die des Benutzers Zeit, nicht die Zeit des Servers. Das Skript würde etwa so aussehen:

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

Hoffe, das hilft!

0

habe ich so etwas wie diese

Ihre 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; 
} 

in Ihrem html:

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

dann Stil einfach Ihre .night oder · Tag Klassen

0

Sie können Stellen Sie verschiedene CSS-Dateien ein, eine für die Tageszeit und die andere für die Nacht.

$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"; 

} 

Dann wird in dem <meta> Tag, dass die Stil-Datei der Seite definieren.

<link href="<?= $css ?>" rel="stylesheet">