如何计算两个日期之间的小数天数[重复]

Posted

技术标签:

【中文标题】如何计算两个日期之间的小数天数[重复]【英文标题】:How to count fractional days between 2 dates [duplicate] 【发布时间】:2013-09-11 00:52:38 【问题描述】:

我有以下代码,但这给了我整数:

<?php
   $datetime1 = new DateTime('2009-10-11 00:00:00');
   $datetime2 = new DateTime('2009-10-11 00:00:10');
   $interval = $datetime1->diff($datetime2);
   echo $interval->format('%R%a days');
?>

如何计算天数并显示小数点?在上面的示例中,有 10 秒的差异,如何让它显示 0.000000 天?

【问题讨论】:

查看***.com/questions/2040560/… diff() 只会返回天数的差异。你的两个日期是同一天,所以没有区别。您希望将其转换为普通的“秒数”差异,并将其格式化为 hh:mm:ss 类型的字符串。 只需用秒数除以一天中的秒数。 我知道存在秒数的例子。我不是在那之后。我在小数点后几天。即如果有 24 小时的差异,我想看到 0. 天。如果相差1天半,我想看1.5天。如果相差 1 天和 3/4 天,我想看 1.75 天等。 【参考方案1】:

为什么不使用strtotime?

$oneDay = 24 * 60 * 60;
$datetime1 = strtotime('2009-10-11 00:00:00');
$datetime2 = strtotime('2009-10-11 00:00:10');
$interval = $datetime2 - $datetime1; // seconds
$days = $interval / $oneDay; // fractions of days

【讨论】:

也许是因为 strtotime 只是简单地转换为 unix 时间戳,这不支持夏令时 但这显示秒数,我想用小数点显示天数,即 1 天半是 1.5 天等。 如果两个日期都在同一个时区(所以同样的夏令时规则适用)你为什么要关心?差别还是一样的。 我编辑了我的代码来计算天数的分数,而不是天数+额外的秒数。

以上是关于如何计算两个日期之间的小数天数[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何删除两个日期之间的星期六和星期日并计算总天数[重复]

Java,计算两个日期之间的天数[重复]

在html中计算两个输入类型=“日期”之间的天数[重复]

如何找到两个日期之间的天数差异[重复]

c#如何计算两个日期之间相隔天数

Java获取两个日期之间的天数[重复]