以整数形式返回时间差

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


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


$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,但我无法弄清楚它到底是什么。


小怪兽爱吃肉
浏览 116回答 1
1回答

斯蒂芬大帝

你的问题在于abs(round($date_diff/86400))这将取整并取可能是浮点数的绝对值。但是,round()返回一个浮点值,即使它被四舍五入为一个整数。abs()相同类型的返回(所以如果它有一个浮点数,它返回一个浮点数)。您可以通过执行将值类型转换为整数$date_diff_val = (int)abs(round($date_diff / 86400));
打开App,查看更多内容
随时随地看视频慕课网APP