PHP Дата не работает, как ожидалось - PullRequest
0 голосов
/ 03 августа 2020

Я часами пытался понять это, и это меня побило. Почему $ currentDay возвращает число, представляющее день недели? Можно ли не присвоить дате переменную?

<?php
date_default_timezone_set("America/New_York");
$currentDay = date('l'); // dayname
$currentTime = date("H");
$preOpen = "We're Open";
$preClosed = "We're Closed";
if ($currentDay = "Thursday" && $currentTime >= "22") {
  echo $preClosed."<br>";
} elseif ($currentDay = "Friday") {
  echo $preClosed."<br>";
} elseif ($currentDay = "Saturday" && $currentTime >= "22") {
  echo $preClosed."<br>";
} else {echo $preOpen."<br>";
}
echo date('l')."<br>";
echo $currentDay
?>

1 Ответ

3 голосов
/ 03 августа 2020

В ваших операторах if вам нужно использовать == для проверки равенства вместо =.

С вашим текущим кодом, когда вы пишете ($currentDay = "Thursday" && $currentTime >= "22"), PHP фактически оценивает значение "Thursday" && $currentTime >= "22" как логическое (которое возвращает 1 прямо сейчас, после 22:00 в Нью-Йорке) и присваивает его $currentDay.

Demo

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...