如何计算两个日期之间的小数天数[重复]
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 天等。 如果两个日期都在同一个时区(所以同样的夏令时规则适用)你为什么要关心?差别还是一样的。 我编辑了我的代码来计算天数的分数,而不是天数+额外的秒数。以上是关于如何计算两个日期之间的小数天数[重复]的主要内容,如果未能解决你的问题,请参考以下文章