2016-03-21 9 views
0

Ich bin derzeit mit meiner Titelseite beschäftigt. Wenn es fast Weihnachten ist oder wenn es Weihnachten ist, fügen Sie die xmas Klasse hinzu.Mehrere Daten hinzufügen PHP

<?php if(date("d-m") == "25-12") { echo ' class="xmas"'; } ?> 

Das obige Skript funktioniert, jedoch möchte ich die folgenden Daten hinzufügen, ohne das Skript zu wiederholen;

<?php if(date("d-m") == "25-12" OR "26-12" OR "27-12" OR "28-12" OR "29-12" OR "30-12") { echo ' class="xmas"'; } ?> 

das nicht funktioniert aber es ist ein Beispiel dafür, wie ich will es sein.

Hat jemand eine Lösung dafür?

+1

Menge Hits für * "wenn das Datum in Bereich php" * zwicken. –

Antwort

1
<?php if(in_array(date("d-m"), ["25-12", "26-12", "27-12", "28-12", "29-12", "30-12"])) { echo ' class="xmas"'; } ?> 

Die Überprüfung, ob das Datum im erforderlichen Bereich liegt, wäre jedoch die sauberste Option.

+0

Danke. Ich verstehe das Datum in Bereichskript, aber das ist ein ziemlich großes Skript und ich suche nach etwas sauberem und einfachem. Danke noch einmal. –

1

Beginnen Sie damit, die Daten, an denen Sie interessiert sind, in ein Array einzutragen, sie müssen nicht zusammenhängend oder auch nicht in einer logischen Reihenfolge sein.

$special_dates = ["25-12", "01-04", "31-12", "29-02", "21-06"]; 

Dies ist leicht zu lesen und zu warten.

Dann mit der in_array() Funktion Sie

if (in_array(date("d-m"), $special_dates)) { 
    // It's a special date 
} else { 
    // just an ordinary date 
} 
+0

Hoffen wir nur, dass sie nicht nach etwas suchen, das "noch einfacher/kürzer" dort ist Smokey ;-) –

1

tun kann, würde ich es ein wenig anders machen:

<?php 
    if(date('m') == 12 && ($d = date('d')) >= 25 && $d <= 30)){ 
    // do your stuff. 
    // Better for performance because: 
    // - There is no need to grab the day of the month, if the month is not december. 
    // - If it isn't december, the code after && is not executed. 
    } 

    function in_range($i, $start, $end){ 
    return $i >= $start && $i <= $end; 
    } 

    if(date('m') == 12 && in_range(date('d'), 25, 30){ 
    // do your stuff. 
    // Better for code reuse ability. 
    } 
?> 
0

immer den Tag des Jahres überprüfen konnte ...

if(date('z') >= 358) { 
... 
} 

oder wenn Sie wirklich nicht wollen, dass es am 31. Dezember zeigt:

if(date('z') >= 358 && date('z') <= 364) { 
... 
} 

Bedarf für Schaltjahre (359 statt 358)