如何在PHP中计算两个日期时间之间的分钟差异?
当前回答
这就是我如何显示“xx次前”在php > 5.2 ..这里是DateTime对象的更多信息
//Usage:
$pubDate = $row['rssfeed']['pubDates']; // e.g. this could be like 'Sun, 10 Nov 2013 14:26:00 GMT'
$diff = ago($pubDate); // output: 23 hrs ago
// Return the value of time different in "xx times ago" format
function ago($timestamp)
{
$today = new DateTime(date('y-m-d h:i:s')); // [2]
//$thatDay = new DateTime('Sun, 10 Nov 2013 14:26:00 GMT');
$thatDay = new DateTime($timestamp);
$dt = $today->diff($thatDay);
if ($dt->y > 0){
$number = $dt->y;
$unit = "year";
} else if ($dt->m > 0) {
$number = $dt->m;
$unit = "month";
} else if ($dt->d > 0) {
$number = $dt->d;
$unit = "day";
} else if ($dt->h > 0) {
$number = $dt->h;
$unit = "hour";
} else if ($dt->i > 0) {
$number = $dt->i;
$unit = "minute";
} else if ($dt->s > 0) {
$number = $dt->s;
$unit = "second";
}
$unit .= $number > 1 ? "s" : "";
$ret = $number." ".$unit." "."ago";
return $ret;
}
其他回答
<?php
$date1 = time();
sleep(2000);
$date2 = time();
$mins = ($date2 - $date1) / 60;
echo $mins;
?>
它在我的程序上工作,我使用date_diff,你可以在这里检查date_diff手册。
$start = date_create('2015-01-26 12:01:00');
$end = date_create('2015-01-26 13:15:00');
$diff=date_diff($end,$start);
print_r($diff);
你得到你想要的结果。
DateTime::diff很酷,但对于这种需要单个单元结果的计算来说很尴尬。手动减去时间戳效果更好:
$date1 = new DateTime('2020-09-01 01:00:00');
$date2 = new DateTime('2021-09-01 14:00:00');
$diff_mins = abs($date1->getTimestamp() - $date2->getTimestamp()) / 60;
时区的另一种方法。
$start_date = new DateTime("2013-12-24 06:00:00",new DateTimeZone('Pacific/Nauru'));
$end_date = new DateTime("2013-12-24 06:45:00", new DateTimeZone('Pacific/Nauru'));
$interval = $start_date->diff($end_date);
$hours = $interval->format('%h');
$minutes = $interval->format('%i');
echo 'Diff. in minutes is: '.($hours * 60 + $minutes);
我找到了很多解,但我从来没有得到正确的解。但是我已经创建了一些代码来查找分钟,请检查它。
<?php
$time1 = "23:58";
$time2 = "01:00";
$time1 = explode(':',$time1);
$time2 = explode(':',$time2);
$hours1 = $time1[0];
$hours2 = $time2[0];
$mins1 = $time1[1];
$mins2 = $time2[1];
$hours = $hours2 - $hours1;
$mins = 0;
if($hours < 0)
{
$hours = 24 + $hours;
}
if($mins2 >= $mins1) {
$mins = $mins2 - $mins1;
}
else {
$mins = ($mins2 + 60) - $mins1;
$hours--;
}
if($mins < 9)
{
$mins = str_pad($mins, 2, '0', STR_PAD_LEFT);
}
if($hours < 9)
{
$hours =str_pad($hours, 2, '0', STR_PAD_LEFT);
}
echo $hours.':'.$mins;
?>
它以小时和分钟为单位输出,例如01小时02分钟,如01:02
推荐文章
- MySQL中两个日期之间的差异
- 在Bash中获取日期(比当前时间早一天)
- 阻止人们入侵基于php的Flash游戏高分表的最佳方法是什么
- 我怎么能计算在打字稿2日期之间的时间
- 将dd-mm-yyyy字符串转换为日期
- PHP子字符串提取。获取第一个'/'之前的字符串或整个字符串
- __construct函数的作用是什么?
- PHP中的异步shell执行器
- Laravel 5 -如何访问在视图存储上传的图像?
- 为什么在PHP中使用sprintf函数?
- “质量分配”在Laravel中是什么意思?
- 在逗号上爆炸字符串,并修剪每个值的潜在空格
- PHP与MySQL 8.0+错误:服务器请求身份验证方法未知的客户端
- laravel5“LIKE”对等物(雄辩的)
- 在函数中使用默认实参