PHP-以分钟为单位的时间差
我想计算两次的差值。我用这个方法返回以分钟为单位的差值PHP-以分钟为单位的时间差,php,Php,我想计算两次的差值。我用这个方法返回以分钟为单位的差值 $datetime1 = new DateTime('9.00am'); $datetime2 = new DateTime('10.15am'); $interval = $datetime1->diff($datetime2); $timeDuration = $interval->format('%im'); 但是,$timeDuration返回的是15m,而不是75m。 是否有任何帮助可以更正代码,使其在几分钟内返回准
$datetime1 = new DateTime('9.00am');
$datetime2 = new DateTime('10.15am');
$interval = $datetime1->diff($datetime2);
$timeDuration = $interval->format('%im');
但是,$timeDuration
返回的是15m
,而不是75m
。
是否有任何帮助可以更正代码,使其在几分钟内返回准确的差异?在几分钟内获得差异的简单方法
<?php
$start = date_create('1990-01-01 09:00:00');
$end = date_create('1990-01-01 10:15:00');
$interval=date_diff($end, $start);
$hours = $interval->format('%h');
$minutes = $interval->format('%i');
$in_minutes = $hours * 60 + $minutes;
echo 'Diff. in minutes is: '.$in_minutes;
?>
因为9am
和10:15am
之间的时间是1小时($interval->h
)和15分钟($interval->i
),而不是75分钟
如果希望获得总分钟数,则必须计算:
$differenceInMinutes = $interval->i + ($interval->h * 60);
$datetime1 = new DateTime('9.00am');
$datetime2 = new DateTime('10.15am');
$interval = $datetime1->diff($datetime2);
$hours = $interval->format('%h');
$minutes = $interval->format('%i');
$difference_in_minutes = $hours * 60 + $minutes;
echo 'Difference in minutes is: ' . $difference_in_minutes . "\n";
如果您希望有更通用的解决方案,我会选择unix时间:
$differenceInSeconds = abs($datetime1->format('U') - $datetime2->format('U'));
$differenceInMinutes = ceil($differenceInSeconds / 60);
当您试图计算两个DateTime
之间的差异时,如$datetime1=newdatetime('9.00am')
和$datetime2=新的日期时间('10.15am')
您知道差异是75分钟,但是diff()
方法的结果是$interval->h
为1小时,$interval->i
为15分钟。这就是你如何计算它的方法:
$differenceInMinutes = $interval->i + ($interval->h * 60);
$datetime1 = new DateTime('9.00am');
$datetime2 = new DateTime('10.15am');
$interval = $datetime1->diff($datetime2);
$hours = $interval->format('%h');
$minutes = $interval->format('%i');
$difference_in_minutes = $hours * 60 + $minutes;
echo 'Difference in minutes is: ' . $difference_in_minutes . "\n";
有一个工作您是否检查了输入的日期是否被正确解析?如果超过24小时,则可能重复?