我遇到以下代码问题:
if (Date("D") == "Sat" or Date("D") == "Sun") {
echo("No School");
}
else {
if (Date("g") >= 2 && Date("i") >= 10 && Date("A") == "PM"){
echo("No School");
}
elseif(Date("g") == 8 && Date("i") <= 15 && Date("A") == "AM"){
echo("Homeroom");
}
elseif(Date("g") == 8 && Date("i") >= 15 && Date("A") == "AM"){
echo("Period 1");
}
elseif(Date("g") == 9 && Date("i") <= 30 && Date("A") == "AM"){
echo("Period 1");
}
elseif(Date("g") == 9 && Date("i") >= 35 && Date("A") == "AM"){
echo("Period 2");
}
elseif(Date("g") == 10 && Date("i") <= 50 && Date("A") == "AM"){
echo("Period 2");
}
elseif(Date("g") == 10 && Date("i") >= 50 && Date("A") == "AM"){
echo("Lunch");
}
elseif(Date("g") == 11 && Date("i") <= 35 && Date("A") == "AM"){
echo("Lunch");
}
elseif(Date("g") == 11 && Date("i") >= 35 && Date("A") == "AM"){
echo("Period 3");
}
elseif(Date("g") == 12 && Date("i") <= 50 && Date("A") == "PM"){
echo("Period 3");
}
elseif(Date("g") == 12 && Date("i") >= 55 && Date("A") == "PM"){
echo("Period 4");
}
elseif(Date("g") == 1 && Date("i") >= 0 && Date("A") == "PM"){
echo("Period 4");
}
elseif(Date("g") == 2 && Date("i") <= 10 && Date("A") == "PM"){
echo("Period 4");
}
}
?>
我想查看当前时间是什么,然后回显你将进入哪个时期。我尝试将系统时间更改为更早的时间但它仍然说没有学校。我不确定它是否与代码有关,或者php是否根据计算机时间以外的其他内容检查您的时区。
答案 0 :(得分:1)
简化您的逻辑并消除早期:
$now = time(); // change this to test other times
if (in_array(date('N', $now), array(6, 7))) {
// Sat or Sun
} else if ($now < strtotime('8:15', $now)) {
// before start
} else if ($now < strtotime('9:30', $now)) {
// first period
} else if ($now < strtotime('10:30', $now)) {
// second period
} ... {
...
} else if ($now < strtotime('14:30', $now)) { // use real time, not AM/PM ;-P
...
} else {
// after school
}
如果时间在开始之前,它就会消失,否则,如果它在第二个时间段之前,则是第一个时间段,否则,如果它在第三个时间段之前,则是第二个时间段,依此类推。这也可以帮助您涵盖介于两者之间的所有案例,最后else
涵盖所有案例。
答案 1 :(得分:0)
似乎你的代码工作正常。你必须指定你的时区。
<?php
date_default_timezone_set('Asia/Colombo');
if (date("D") == "Sat" or date("D") == "Sun") {
echo("No School");
}
else {
if (date("g") >= 2 && date("i") >= 10 && date("A") == "PM"){
echo("No School");
}
elseif(date("g") == 8 && date("i") <= 15 && date("A") == "AM"){
echo("Homeroom");
}
elseif(date("g") == 8 && date("i") >= 15 && date("A") == "AM"){
echo("Period 1");
}
elseif(date("g") == 9 && date("i") <= 30 && date("A") == "AM"){
echo("Period 1");
}
elseif(date("g") == 9 && date("i") >= 35 && date("A") == "AM"){
echo("Period 2");
}
elseif(date("g") == 10 && date("i") <= 50 && date("A") == "AM"){
echo("Period 2");
}
elseif(date("g") == 10 && date("i") >= 50 && date("A") == "AM"){
echo("Lunch");
}
elseif(date("g") == 11 && date("i") <= 35 && date("A") == "AM"){
echo("Lunch");
}
elseif(date("g") == 11 && date("i") >= 35 && date("A") == "AM"){
echo("Period 3");
}
elseif(date("g") == 12 && date("i") <= 50 && date("A") == "PM"){
echo("Period 3");
}
elseif(date("g") == 12 && date("i") >= 55 && date("A") == "PM"){
echo("Period 4");
}
elseif(date("g") == 1 && date("i") >= 0 && date("A") == "PM"){
echo("Period 4");
}
elseif(date("g") == 2 && date("i") <= 10 && date("A") == "PM"){
echo("Period 4");
}
else
{
echo("Too early to school");
}
}
?>