为了账号安全,请及时绑定邮箱和手机立即绑定

以整数形式返回时间差

以整数形式返回时间差

PHP
小怪兽爱吃肉 2021-10-15 16:00:07
我有一个脚本来计算今天和第一篇文章之间的时差。如果基于该时间差的计算结果是整数,我需要有一个条件,如果某件事发生。当我回显计算的最终结果时,它显示一个整数。但是当我检查它是否是整数时 - 什么也没有发生。尽管是整数,但我将问题归结为未被识别为整数的时间差。$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 回答

?
斯蒂芬大帝

TA贡献1827条经验 获得超8个赞

你的问题在于

abs(round($date_diff/86400))

这将取整并取可能是浮点数的绝对值。但是,round()返回一个浮点值,即使它被四舍五入为一个整数。abs()相同类型的返回(所以如果它有一个浮点数,它返回一个浮点数)。您可以通过执行将值类型转换为整数

$date_diff_val = (int)abs(round($date_diff / 86400));


查看完整回答
反对 回复 2021-10-15
  • 1 回答
  • 0 关注
  • 115 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信