我的代码问题没有显示日期之间的正确差异。 Days Minutes和Seconds都正常工作,但是如果有意义的话,小时数似乎显示为减去的数量而不是余数。
例如,使用这些日期 2171167 = 2013-05-18 00:00:00 - 2013-04-22 20:53:53
我收到以下输出 25天19:06:07
$date_one = date('Y-m-d H:i:s');
$date_two = date('Y-m-d H:i:s', mktime(0, 0, 0, 5, 18, 2013));
$Difference = abs(strtotime($date_two) - strtotime($date_one));
$Days = date("d", $Difference);
//$Hours = date("H", $Difference); Why does this NOT WORK???
$Minutes = date("i", $Difference);
$Seconds = date("s", $Difference);
如果你能告诉我为什么我注释掉的第二个“小时”变量不起作用我会非常感激。
答案 0 :(得分:3)
<?php
header('Content-Type: text/plain');
$date1 = DateTime::createFromFormat('Y-m-d H:i:s', '2013-05-18 00:00:00');
$date2 = DateTime::createFromFormat('Y-m-d H:i:s', '2013-04-22 20:53:53');
$result = $date1->diff($date2);
echo $result->format('%Y-%m-%d %H:%i:%s');
?>
节目:
00-0-25 03:6:7
分成变量:
list($year, $month, $day, $hour, $minute, $second) = explode('-', $result->format('%Y-%m-%d-%H-%i-%s'));
var_dump($year, $month, $day, $hour, $minute, $second);
节目:
string(2) "00"
string(1) "0"
string(2) "25"
string(2) "03"
string(1) "6"
string(1) "7"
答案 1 :(得分:0)
只需更改小时语法。
<?php
$date_one = date('Y-m-d H:i:s');
$date_two = date('Y-m-d H:i:s', mktime(0, 0, 0, 5, 18, 2013));
$Difference = round(strtotime($date_two) - strtotime($date_one));
$Days = date("d", $Difference);
$Hours = date("H", $Difference);
echo $Hours = $Difference / 60;
$Minutes = date("i", $Difference);
$Seconds = date("s", $Difference);
?>
答案 2 :(得分:0)
您使用错误的第一次约会使用以下代码作为您的实际答案
$date_one = "2013-04-22 20:53:53"; //date('Y-m-d H:i:s');
$date_two = date('Y-m-d H:i:s', mktime(0, 0, 0, 5, 18, 2013));
$Difference = abs(strtotime($date_two) - strtotime($date_one));
echo "<br> dif ->".date('d H:i:s',$Difference);
echo "<br> day -> ".$Days = date("d", $Difference);
echo "<br> Hours -> ".$Hours = date("H", $Difference);
echo "<br> Minutes -> ".$Minutes = date("i", $Difference);
echo "<br> Seconds -> ".$Seconds = date("s", $Difference);
<强>:输出:强>
dif - > 26 03:06:07
day -> 26
Hours -> 03
Minutes -> 06
Seconds -> 07