2010-04-26 37 views
2

我想拼湊一個php腳本來輸出不同的文本,這取決於它是什麼日期和一天的時間。插入文本取決於一天中的時間和星期幾

實施例: 平日(週一至週五),我想輸出文本根據時間下列期間(24H,服務器時間,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存有」 週末(週六,週日),我想輸出下面的文本在這個時間段: 00:00-24:00「Lorem存有」

任何人都可以用PHP幫助腳本來做到這一點?

我已經在css-tricks forum得到了一些幫助。他們提供了這個代碼:

<?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]' />"; 
?> 

但它適用於所有日子,並且只在整整幾個小時。我希望能夠指定每半小時和每天的基礎。

還是php-noob,所以我希望有人能幫助我。

回答

1

感謝您的建議。我有一個朋友(比我更擅長PHP)看看他們,我們想出了這個解決方案。 有了這個,我可以爲一天中的不同時間以及一週中的不同日期指定文本,還可以指定具有自己文本的天數列表。

<?php 

date_default_timezone_set('Europe/Copenhagen'); 

// Runs the function 
echo time_str(); 

function time_str() { 

     if(IsHoliday()) 
     { 
      return ClosedHoliday(); 
     }   

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

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

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

     switch(strtolower($dow)){ 
       case 'mon': //MONDAY 
        if ($hm >= 0 && $hm < 800) return Closed(); 
        if ($hm >= 800 && $hm < 1100) return Open(); 
        if ($hm >= 1100 && $hm < 1500) return OpenDelay(); 
        if ($hm >= 1500 && $hm < 1600) return Open(); 
        if ($hm >= 1600 && $hm < 2359) return Closed(); 
        break; 
       case 'tue': //TUESDAY 
        if ($hm >= 0 && $hm < 800) return Closed(); 
        if ($hm >= 800 && $hm < 1100) return Open(); 
        if ($hm >= 1100 && $hm < 1500) return OpenDelay(); 
        if ($hm >= 1500 && $hm < 1600) return Open(); 
        if ($hm >= 1600 && $hm < 2359) return Closed(); 
        break;    
       case 'wed': //WEDNESDAY 
        if ($hm >= 0 && $hm < 800) return Closed(); 
        if ($hm >= 800 && $hm < 1100) return Open(); 
        if ($hm >= 1100 && $hm < 1500) return OpenDelay(); 
        if ($hm >= 1500 && $hm < 1600) return Open(); 
        if ($hm >= 1600 && $hm < 2359) return Closed(); 
        break;    
       case 'thu': //THURSDAY 
        if ($hm >= 0 && $hm < 800) return Closed(); 
        if ($hm >= 800 && $hm < 1100) return Open(); 
        if ($hm >= 1100 && $hm < 1500) return OpenDelay(); 
        if ($hm >= 1500 && $hm < 1600) return Open(); 
        if ($hm >= 1600 && $hm < 2359) return Closed(); 
        break;    
       case 'fri': //FRIDAY 
        if ($hm >= 0 && $hm < 800) return Closed(); 
        if ($hm >= 800 && $hm < 1100) return Open(); 
        if ($hm >= 1100 && $hm < 1500) return OpenDelay(); 
        if ($hm >= 1500 && $hm < 1600) return Open(); 
        if ($hm >= 1600 && $hm < 2359) return Closed(); 
        break;    

     }   
} 

// List of holidays 
function HolidayList() 
{ 
    // Format: 2009/05/11 (comma seperated) 
    return array("2010/05/04","2009/05/11"); 
} 

// Function to check if today is a holiday 
function IsHoliday() 
{ 
    // Retrieves the list of holidays 
    $holidayList = HolidayList(); 
    // Checks if the date is in the holidaylist 
    if(in_array(date("Y/m/d"),$holidayList)) 
    { 
     return true; 
    }else 
    { 
     return false; 
    } 
} 

// Returns the data when open 
function Open() 
{ 
     return 'Open'; 
} 

// Return the data when closed 
function Closed() 
{ 
     return 'Closed'; 
} 

// Returns the data when open but with waiting time 
function OpenDelay() 
{ 
     return 'Open, but with delay'; 
} 

// Returns the data when closed due to holiday 
function ClosedHoliday() 
{ 
     return 'Lukket pga. helligdag'; 
} 

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

我相信你可以弄清楚如何去添加日常的功能。閱讀日期課程。

4

刪除switch語句並使用一系列if/else語句。這個開關不會給你很大的細節。

<?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 ... 
} 

我還必須指出,你的switch語句有一個額外的案例,永遠不會被使用 - 24.沒有24小時; 23點59分後,時鐘回到00:00。

+1

@webbiedave Yikes,當然。感謝您的支持。 – meagar 2010-04-26 21:31:54

+0

哈哈。別客氣。 – webbiedave 2010-04-26 21:33:38

+0

http://stackoverflow.com/questions/16218517/using-the-time-to-retrieve-specific-content-from-a-database-through-php – 2013-04-25 19:06:56

1

該開關很醜。

爲什麼不一樣的東西:

<?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.. 
    } 
} 
0

我正在使用它,它的工作,但我也會根據星期幾從外部txt文件加載一些文本。

<html> 

<head><meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> 

<META HTTP-EQUIV="refresh" CONTENT="60"> 
<title>LOUNAS</title> 
<style type="text/css"> 
body { 
    overflow:hidden; 
} 
</style> 
<script type="text/javascript"><!-- 
var imlocation = ""; 
function ImageArray (n) { 
    this.length = n; 
    for (var i =1; i <= n; i++) { 
    this[i] = ' ' 
    } 
} 
image = new ImageArray(7); 
image[0] = 'sunday.jpg'; 
image[1] = 'monday.jpg'; 
image[2] = 'tuesday.jpg'; 
image[3] = 'wednsday.jpg'; 
image[4] = 'thursday.jpg'; 
image[5] = 'friday.jpg'; 
image[6] = 'saturday.jpg'; 
var currentdate = new Date(); 
var imagenumber = currentdate.getDay(); 
document.write('<img src="' + imlocation + image[imagenumber] + '"> style="width:100%;height:100%;" border="0" /'); 
//--></script></head> 

<body bgcolor="#000000"> 
</body> 

</html> 
相關問題