我对以下代码有问题:
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是否基于计算机时间以外的其他东西来检查您的时区。
简化您的逻辑并尽早消除:
$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
涵盖之后的所有情况。
似乎您的代码运行良好。你必须指定你的时区。
<?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");
}
}
?>