php - 计算PHP中2个日期之间的小时数

标签 php datetime

如何计算两个日期之间的时间差?

例如:

day1=2006-04-12 12:30:00
day2=2006-04-14 11:30:00

在这种情况下,结果应该是 47 小时。

最佳答案

较新的 PHP 版本提供了一些名为 DateTimeDateIntervalDateTimeZoneDatePeriod 的新类。这个类的酷之处在于,它考虑了不同的时区、闰年、闰秒、夏令时等。除此之外,它非常易于使用。借助这些对象,您可以实现以下目标:

// Create two new DateTime-objects...
$date1 = new DateTime('2006-04-12T12:30:00');
$date2 = new DateTime('2006-04-14T11:30:00');

// The diff-methods returns a new DateInterval-object...
$diff = $date2->diff($date1);

// Call the format method on the DateInterval-object
echo $diff->format('%a Day and %h hours');

返回的 DateInterval 对象还提供了除 format 之外的其他方法。如果你只想要几个小时的结果,你可以这样:

$date1 = new DateTime('2006-04-12T12:30:00');
$date2 = new DateTime('2006-04-14T11:30:00');

$diff = $date2->diff($date1);

$hours = $diff->h;
$hours = $hours + ($diff->days*24);

echo $hours;

这里是文档的链接:

所有这些类还提供了一种操作日期的程序/功能方式。因此,请查看概述:http://php.net/manual/book.datetime.php

关于php - 计算PHP中2个日期之间的小时数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3108591/

相关文章:

postgresql - 有没有一种简单的方法可以在 PostgreSQL 中计算 12 个月的移动平均值?

java - 在Java中解析日期时间格式并将其从csv文件转换为mysql

sql - ORA-01843 : not a valid month error when using to_date function

php - Laravel 问题 : How can I change the email field to username?

php - AJAX 加载整个页面而不是页面的一部分以从数据库加载数据

php - 允许用户找到半径内的其他用户

c# - 我现在如何通过时间字符串和日期时间来获得差异?

python - 在 Pandas 中如何从日期时间获取 UTC 时间戳(在给定时间)?

php - 将 Wordpress 永久链接更改为 "Post Name"后找不到页面

javascript - 表单提交后输入按钮改变颜色