返回时间差为整数

时间:2019-07-18 05:05:36

标签: php wordpress

我有一个脚本,可以计算今天和第一篇文章之间的时差。如果基于该时间差的计算结果是整数,则我需要有一个条件,即发生某件事。当我回显计算的最终结果时,它将显示一个整数。但是当我检查它是否为整数时,什么也没发生。

我将问题归结为时间差,尽管它是一个整数,但仍未被识别为整数。

$todays_date = current_time('d-m-Y'); 
//I will skip WP post loop to save space. It works.
$first_date = get_the_date( 'd-m-Y' );
$count = 3;
$date_diff = strtotime($todays_date) - strtotime($first_date);
$date_diff_val = abs(round($date_diff/86400));
if ($date_diff_val/$count > 1) {
$display_date2 = ($date_diff_val-1)/$count;
if (is_int($display_date2)) {
        echo 'works';
    }
}

我尝试将$date_diff_val替换为数字10,此方法奏效了。因此,显然问题出在$date_diff_val上,但我无法弄清楚到底是什么。

1 个答案:

答案 0 :(得分:2)

您的问题出在

abs(round($date_diff/86400))

这将取整并取可能是浮点数的绝对值。但是,round()返回一个浮点值,即使将其四舍五入为整数也是如此。 abs()返回相同的类型(因此,如果有浮点数,则返回浮点数)。您可以通过

将值转换为整数
$date_diff_val = (int)abs(round($date_diff / 86400));