[英]Insert text depending on time of day and day of week
我正在嘗試拼湊一個php腳本,以根據當天和一天中的時間輸出不同的文本。
示例:在工作日(周一至周五),我想根據以下時間段(24小時,服務器時間,UTC)輸出文本:00:00-08:00:“ Lorem ipsum” 08:00-13: 00:“阿勒特坐” 13:00-15:00:“佩倫特式居民” 15:00-15:30:“阿勒坐子” 15:30-24:00:“ Lorem ipsum”周末(周六至周日) ),我想在此時間段內輸出以下文本:00:00-24:00“ Lorem ipsum”
任何人都可以幫助一個PHP腳本做到這一點?
我已經在css-tricks論壇上獲得了一些幫助。 他們提供了以下代碼:
<?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,所以我希望有人可以幫助我。
刪除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。 23:59之后,時鍾回繞到00:00。
那個開關很丑。
為什么不這樣:
<?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..
}
}
感謝您的所有建議。 我有一個朋友(在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';
}
?>
$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
我相信您也可以弄清楚如何增加日常功能。 閱讀日期類。
我正在使用它,它可以正常工作,但是我還會根據星期幾從外部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>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.