[英]diff() and date_diff() in PHP not working for some reason
我在两个日期之间使用PHP的' diff()
'或' date_diff()
'时遇到问题。 基本上,当我执行任何尝试比较日期或尝试将日期定义为日期的操作时,页面将在此时停止加载。
<?php
// My starting point is the $dirty_date variable.
// It is collected from a string, parsed,
// and ends up being an integer-based date / seconds past Unix Epoch
//I am also including some echos along the way for debugging purposes.
echo "Check 1: ".$dirty_date."<br>";
$systemdate = date("U");
echo "Check 2: ".$systemdate."<br>";
//$interval = $dirty_date->diff($systemdate);
echo "check 3: ".$interval;
结果如下:
检查1:1490781836
检查2:1490806703
检查3:
Check 3未返回任何内容,因为我有将其注释掉的行。 我将其注释掉,因为如果启用了该页面,则该点之后不会加载任何其他内容。
首先,未定义$newdate
。 其次, $dirty_date
必须是一个DateTime对象,当前它只是一个整数。 我假设您要比较$dirty_date
和$systemdate
尝试这个:
$dirty_date_obj = new DateTime();
$dirty_date_obj->setTimestamp((int) $dirty_date);
$system_date_obj = new DateTime();
$system_date_obj->setTimestamp((int) $systemdate);
echo "interval between dirty and system: ".$dirty_date_obj->diff($system_date_obj)->format('%a Days and %h hours');
另外,请在代码的开头键入以下内容以查看错误消息,因此,如果发生某些错误,它不仅是空白页:
error_reporting(E_ALL); ini_set('display_errors', '1');
这是一个例子
$dirty_date = new \DateTime();
$dirty_date->setTimestamp("your integer date");
echo "Check 1: ".$dirty_date->format(\DateTime::ISO8601)."<br>";
$systemdate = new \DateTime();
echo "Check 2: ".$systemdate->format(\DateTime::ISO8601)."<br>";
$interval = $dirty_date->diff($systemdate);
echo "check 3: ".$interval->format("%R%a days");
链接到DateInterval($ interval var)格式http://php.net/manual/en/dateinterval.format.php
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.