PHP DateTime::diff生成零
此函数生成0的结果:PHP DateTime::diff生成零,php,Php,此函数生成0的结果: function time_difference($time1, $time2) { $dt1 = new DateTime($time1); $dt2 = new DateTime($time2); $difference = $dt1->diff($dt2); var_dump($difference); } 下面是var_dump的输出。是的,我确实验证了$time1和$time2是否具有有效的日期/时间 object(Dat
function time_difference($time1, $time2) {
$dt1 = new DateTime($time1);
$dt2 = new DateTime($time2);
$difference = $dt1->diff($dt2);
var_dump($difference);
}
下面是var_dump的输出。是的,我确实验证了$time1和$time2是否具有有效的日期/时间
object(DateInterval)#7 (15) {
["y"]=> int(0)
["m"]=> int(0)
["d"]=> int(0)
["h"]=> int(0)
["i"]=> int(0)
["s"]=> int(0)
["weekday"]=> int(0)
["weekday_behavior"]=> int(0)
["first_last_day_of"]=> int(0)
["invert"]=> int(0)
["days"]=> int(0)
["special_type"]=> int(0)
["special_amount"]=> int(0)
["have_weekday_relative"]=> int(0)
["have_special_relative"]=> int(0)
}
非常感谢您的帮助。看起来您正在尝试从DateTime对象
$time1
构造DateTime对象。请求一个字符串。如果要将DateTime对象传递给函数,请尝试以下操作:
function time_difference($time1, $time2) {
$difference = $time1->diff($time2);
var_dump($difference);
}
看看你的问题。查看
DateTime
和DateTime
是如何不同的颜色的?这是为什么?var_dump似乎在日期间隔上出错(可能取决于PHP版本)。请尝试使用$difference->格式(“%y年、%m月、%d天、%H:%i:%s”)
。@Sammitch PHP类名通常不区分大小写。一致性很好,可以使它们保持一致。在我尝试获得差异之前,varDump会为$time1object(DateTime)#5(3){[“date”]=>string(19)“2013-11-12 02:32:08”[“timezone\u type”]=>int(3)[“timezone”]=>string(14)“America/Denver”}
@CBroe有一个bug,但据报告已在2009年5月修复。我正在将一个字符串传递给函数string(19)“2013-11-12 02:32:08”
。PHP版本是5.4.20 fyin在你上面的评论中,你说,$time1
是一个DateTime对象对不起。我的意思是var_dump($dt1);产生对象(DateTime){[“date”]=>string(19)“2013-11-12 02:32:08”[“timezone\u type”]=>int(3)[“timezone”=>string(14)“America/Denver”}
刚刚升级到PHP5.4.21,看看是否会有所不同。