猿问

如何正确地将日期与 PHP 中的字符串进行比较?

我正在使用两个函数来查找与我传递给函数的日期相关的某些日期。例如:我的函数mgeStart($date)采用$date并查找上一个星期五(因为这是工作周的开始)。此功能正常工作。该函数mgeEnd($date)将当前日期与星期四进行比较。这就是我的问题出现的地方。我经过的每个日期都mgeEnd()认为我经过的日期是星期四(我的错误日志中没有报告错误)。我的两个函数保存在 中functions.php,它们是:


我添加了多个 error_log() 语句来确定每个条目都经过 mgeEnd() 的第一个 if 语句。


function mgeStart($date){


  if(date('D', $date) == 'Fri') { // It is friday

    $start = $date;

  }else{

    $start = date('Y-m-d', strtotime('last friday', strtotime($date))); // last friday

  }

  // error_log("Date: ".$date." Start: ".$start);

return $start;

}


function mgeEnd($date){

  if(date('D', $date) == 'Thu') { // It is thurs

     $end = $date;

  }else{

    error_log("enter2");  //THIS NEVER GETS ENTERED

    $end = date('Y-m-d', strtotime('next thursday', strtotime($date))); // last friday

  }

  return $end;

  error_log("Date: ".$date." End: ".$end);

}

我调用 document2 中的函数:


$endDate = mgeEnd($row_3['WorkDate']);

$startDate = mgeStart($row_3['WorkDate']);

它们位于 for 循环内,并且在每个循环结束时未设置值。


我的程序的预期结果是mgeEnd()返回传递给它的日期的下一个星期四。


mgeEnd() 中的错误日志语句永远不会发布到日志中,而 mgeStart() 中的错误日志语句是。mgeStart() 的行为符合它应有的行为,而 mgeEnd() 则不然。


一只萌萌小番薯
浏览 137回答 1
1回答
随时随地看视频慕课网APP
我要回答