我有一个数据库表,其中包含“名称”(事件)和“日”(完整,所以:“星期一,'星期二'等)。在while
循环中显示一个事件,然后在括号中显示其日期是非常简单的。
有没有办法系统地将每一天替换为下一天的日期?所以星期一是 6 月 11 日,星期二是 6 月 12 日,以此类推。
我已经尝试过这些方面的东西,但是对于“名称”的每一行,变量都保持不变——回想起来,这是有道理的。
$today = date("l");
$todays_date = date("j M");
if ($row['day'] == $today) {
$date = $todays_date;
}
else if (day == date("l", strotime("+1 day")) {
$date = date("j M", strotime("+1 day"));
}
echo "<option>" . $row['name'] . " (" . $date . ")</option>";
编辑
这是我现在拥有的:
function getClubs() {
connect();
date_default_timezone_set('Europe/London');
$day = date("l");
$time = date("G");
if ($time >= 21) {
$day = date('l', strtotime($day .' +1 day'));
}
if ($day == Monday) {
$query = "SELECT * FROM nights WHERE city = 'Cambridge' ORDER BY FIELD(day, 'MONDAY', 'TUESDAY', 'WEDNESDAY', 'THURSDAY', 'FRIDAY', 'SATURDAY', 'SUNDAY')";
}
else if ($day == Tuesday) {
$query = "SELECT name FROM nights WHERE city = 'Cambridge' ORDER BY FIELD(day, 'TUESDAY', 'WEDNESDAY', 'THURSDAY', 'FRIDAY', 'SATURDAY', 'SUNDAY', 'MONDAY')";
}
else if ($day == Wednesday) {
$query = "SELECT name FROM nights WHERE city = 'Cambridge' ORDER BY FIELD(day, 'WEDNESDAY', 'THURSDAY', 'FRIDAY', 'SATURDAY', 'SUNDAY', 'MONDAY', 'TUESDAY')";
}
else if ($day == Thursday) {
$query = "SELECT name FROM nights WHERE city = 'Cambridge' ORDER BY FIELD(day, 'THURSDAY', 'FRIDAY', 'SATURDAY', 'SUNDAY', 'MONDAY', 'TUESDAY', 'WEDNESDAY')";
}
else if ($day == Friday) {
$query = "SELECT name FROM nights WHERE city = 'Cambridge' ORDER BY FIELD(day, 'FRIDAY', 'SATURDAY', 'SUNDAY', 'MONDAY', 'TUESDAY', 'WEDNESDAY', 'THURSDAY')";
}
else if ($day == Saturday) {
$query = "SELECT name FROM nights WHERE city = 'Cambridge' ORDER BY FIELD(day, 'SATURDAY', 'SUNDAY', 'MONDAY', 'TUESDAY', 'WEDNESDAY', 'THURSDAY', 'FRIDAY')";
}
else if ($day == Sunday) {
$query = "SELECT name FROM nights WHERE city = 'Cambridge' ORDER BY FIELD(day, 'SUNDAY', 'MONDAY', 'TUESDAY', 'WEDNESDAY', 'THURSDAY', 'FRIDAY', 'SATURDAY')";
}
$result = mysql_query($query);
$items = array();
if($result && mysql_num_rows($result) > 0) {
while ($row = mysql_fetch_array($result)) {
// $items[] = array($row['name']);
$day = $row['day'];
function getDateString($day){
if (date("l")==$day){
return date("j M");
}
else {
$date = strtotime("next $day");
return date("j M",$date);
}
}
echo "<option>" . $row['name'] . " (" . getDateString($row['day']) . ")</option>";
}
}
}