Php 如何将日期转换为小时

Php 如何将日期转换为小时,php,datetime,Php,Datetime,我有: hours1 : 403440 日期2为:2016/01/10 我需要以小时为单位转换date2,并找出两者之间的差异,两者之间的差异也应以小时为单位。日期的第二个参数是unix时间戳,以秒为单位,因此将小时乘以3600(每小时3600秒) 输出: 09-01-2016 19:00:00 5 根据您的更新,您的代码应为: $date2 = strtotime('2016/01/10');//get date to seconds from 1970 $hours1 = 403440

我有:

hours1 : 403440
日期2为:2016/01/10


我需要以小时为单位转换date2,并找出两者之间的差异,两者之间的差异也应以小时为单位。

日期的第二个参数是unix时间戳,以秒为单位,因此将小时乘以3600(每小时3600秒)

输出:

09-01-2016 19:00:00
5
根据您的更新,您的代码应为:

$date2 = strtotime('2016/01/10');//get date to seconds from 1970
$hours1 = 403440 * 3600; // convert from hours to seconds
echo ($date2 - $hours1)/3600;//subtract seconds then divide by 3600 to get how many hours difference is
输出:

09-01-2016 19:00:00
5

date()的第二个参数是unix timestamp,它是自1970年1月1日00:00:00 UTC以来的秒数。 因此,如果$hours1是自1970年1月1日00:00:00 UTC以来的小时数,则应为
date(“d-m-Y H:i:s”,$hours1*3600)
以生成正确的日期字符串


另一方面,
$hours2=(strotime($date2)/3600)为您提供了自1970年1月1日00:00:00 UTC以来的正确小时数。

这是否回答了问题?嗨,艾丹,我已经阅读了上述文章问题,也尝试了同样的方法,但建议对我的问题不起作用。但是初始日期2的值为:date2=2016/01/10。当我使用$hours2=(strotime($date2)/3600);为什么它给出1970年1月1日00:00:00?strotime()应该返回unix时间戳的整数。我不明白为什么会得到一个字符串“1970年1月1日00:00:00”。strotime()给出自1970年1月1日00:00:00 UTC以来的秒数$hours2是自1970年1月1日00:00:00 UTC以来的小时数,因为您将其除以3600。基本上,我想找出hours1:403440和date2:2016/01/10之间的差异,我需要对其进行适当转换并找出差异。我将尝试您的建议并返回@quickpick