php的日期问题


php issue with dates

我正在编写以下代码:

$dateQueried = '2013-03-18';
$reservQuery = "SELECT * FROM bkng WHERE ArrivalDate <= '$dateQueried' AND DepartureDate > '$dateQueried'";
$rsrv = mysql_query($reservQuery) or die(mysql_error());
$resRow = mysql_fetch_row($rsrv);
$DateIn = strtotime($resRow["ArrivalDate"]);
$DateOut = strtotime($resRow["DepartureDate"]);
$dateQueried = strtotime($dateQueried);
if ($DateIn = $dateQueried) {
echo 'case 1';
} elseif ($DateIn < $dateQueried) {
echo 'case 2';
} else {
echo 'case 3';
}

问题是,我无法进入案例2或案例3……有什么我错过的吗?

我尝试打印变量,并尝试将它们放入var_dump():如果它返回例如"String(10('2013-03-18'",则在如果它返回"NULL"时插入。。。

您使用了错误的运算符。通过使用=,您将值分配给$dateIn,该值始终为true,并将始终导致代码块执行。

if ($DateIn = $dateQueried) {

应该是

if ($DateIn == $dateQueried) {
if ($DateIn = $dateQueried) {

是错误的,这是一项任务。应该是

if ($DateIn == $dateQueried) {

=不是比较运算符,而是赋值运算符。赋值总是成功的,因此它总是输出case 1,因为它确实总是true。

您只需将=更改为==即可进行比较。

if ($DateIn == $dateQueried) {
  1. var_dump($dateQueried, $DateIn, $resRow["ArrivalDate"]);
  2. 想想看
  3. 大家都提到的那件事
  4. 学习调试您的代码