我已经读过这个函数应该在5.3但不是5.2中工作,所以我不确定为什么我从PHP得到致命的错误。可悲的是,我无论如何都不是编码员,希望能得到一些指导。谢谢!
function date_diff($start, $end="NOW")
{
$sdate = strtotime($start);
$edate = strtotime($end);
$time = $edate - $sdate;
if($time>=86400) {
// Days + Hours + Minutes
$pday = ($edate - $sdate) / 86400;
$preday = explode('.',$pday);
$phour = $pday-$preday[0];
$prehour = explode('.',$phour*24);
$premin = ($phour*24)-$prehour[0];
$min = explode('.',$premin*60);
$presec = '0.'.$min[1];
$sec = $presec*60;
$timeshift = $preday[0];
}else{
$timeshift = 0;
}
return $timeshift;
}
答案 0 :(得分:2)
无法重新声明XXXX()只是意味着您正在尝试声明已经存在的某些东西。
已定义date_diff函数,因此请在再次定义之前检查它是否已定义。您可以使用function_exists()
执行此操作if (!function_exists("date_diff"))
{
function date_diff($start, $end="NOW")
{
$sdate = strtotime($start);
$edate = strtotime($end);
$time = $edate - $sdate;
if($time>=86400) {
// Days + Hours + Minutes
$pday = ($edate - $sdate) / 86400;
$preday = explode('.',$pday);
$phour = $pday-$preday[0];
$prehour = explode('.',$phour*24);
$premin = ($phour*24)-$prehour[0];
$min = explode('.',$premin*60);
$presec = '0.'.$min[1];
$sec = $presec*60;
$timeshift = $preday[0];
}else{
$timeshift = 0;
}
return $timeshift;
}
}
只是为了澄清,你只需要定义这样的函数你希望你的代码能够在早于5.3的php较新的 AND 版本上工作如果你只使用5.3+那么你就不要需要声明这个函数,因为它已经存在,你只需使用date_diff()而无需定义它