Günün ve haftanın günün saatine bağlı olarak metni ekleme

3 Cevap php

Ben, farklı çıkış ne gün bağlı olarak metin ve günün zaman bir php komut dosyası araya çalışıyorum.

Example: On weekdays (mon-fri), I would like to output text according to the following periods of time (24H, server time, UTC): 00:00-08:00: "Lorem ipsum" 08:00-13:00: "dolor sit amet" 13:00-15:00: "Pellentesque habitant" 15:00-15:30: "dolor sit amet" 15:30-24:00: "Lorem ipsum" On weekends (sat-sun), I would like to output the following text in this time period: 00:00-24:00 "Lorem ipsum"

Herkes bunu bir php komut dosyası ile yardımcı olabilir misiniz?

Zaten css-tricks forum bazı yardım üzerinde ele verdik. Onlar bu kodu verilir:

    <?php
$date = strtotime("now");
$hour = date("H", $date);

switch($hour) {
case 00:
case 01:
case 02:
case 03:
case 04:
case 05:
case 06:
case 07:
case 08:
             $dets = array("img" => "image1.png", "txt" => "Lorem ipsum");
             break;
case 09:
case 10:
case 11:
case 12:
case 13:
             $dets = array("img" => "image2.png", "txt" => "dolor sit amet");
             break;
case 14:
case 15:
case 16:
             $dets = array("img" => "image3.png", "txt" => "Pellentesque habitant");
             break;
case 17:
case 18:
case 19:
case 20:
case 21:
case 22:
case 23:
case 24:
             $dets = array("img" => "image1.png", "txt" => "Lorem ipsum");
             break;
}


echo "<img src='$dets[img]' alt='$dets[txt]' />";   
?>

Ancak, tüm gün boyunca, ve ancak saat çalışmaktadır. Ben yarım saatte ve günde bir gün olarak belirtmek mümkün olmak istiyorum.

Hala bir php-çaylak yüzden birisi bana yardımcı olabilir umuyorum.

3 Cevap

Switch deyimi bırakın ve eğer / else ifadeleri bir dizi kullanın. Anahtar kitlesel ayrıntılı olmadan size zerreliğini vermek için gitmiyor.

<?php

function time_str() {

    $dow = date('D'); // Your "now" parameter is implied

    if ($dow == 'Sat' || $dow == 'Sun') {
        // weekend
        return 'Lorum Ipsum';
    }

    // Time in HHMM format
    $hm = (int)date("Gi");

    if ($hm >=    0 && $hm <  800) return 'Lorem ipsum';
    if ($hm >=  800 && $hm < 1300) return 'dolor sit amet';
    if ($hm >= 1300 && $hm < 1500) return ...
    if ($hm >= 1500 && $hm < 1530) return ...
    if ($hm >= 1530 && $hm < 2359) return ...
}

Ben de switch deyimi kullanılır asla ekstra bir olgu olduğunu işaret var - 24 yok 24 saat var.; 23:59 sonra, saat 00:00 civarında geri sarar.

    $hoursandminutes = date("H:m", $date)

    switch ($hoursandminutes)

    case "08:15":
    //do something, 
    //be aware though that the string representation 08:15 might actually be 8:15 even in 24h format

Ben her gün işlevsellik güne ekleyerek yanı sıra, hakkında gitmek nasıl anlamaya eminim. Tarih sınıfa kadar okuyun.

Bu anahtarı çirkin.

Neden olmasın gibi bir şey:

<?PHP
if (date('l') == 'Saturday' || date('l') == 'Sunday')){
   echo 'Lorem ipsum';
}else{ //it's a weekday
   if (intval(date('H')) < 8){
     echo 'Lorem ipsum';
   }elseif(/* another expression */){
     echo "something else..
   }
}