为什么秒和分钟不能在codeigniter中正确计算?

liwlm1x9  于 2021-06-19  发布在  Mysql
关注(0)|答案(1)|浏览(285)

我目前正在创建一个ci项目,我面临以下问题。我想显示“发布”x“时间前”的文字,我发现一个脚本在线,但秒和分钟没有正确显示。
我已经在网上搜遍了,但什么也没找到。
我的职责是:

$today = time();
$createdday = mysql_to_unix($ptime); 
$datediff = abs($today - $createdday);
$difftext = "";
$years = floor($datediff / (365 * 60 * 60 * 24));
$months = floor(($datediff - $years * 365 * 60 * 60 * 24) / (30 * 60 * 60 * 24));
$days = floor(($datediff - $years * 365 * 60 * 60 * 24 - $months * 30 * 60 * 60 * 24) / (60 * 60 * 24));
$hours = floor($datediff / 3600);
$minutes = floor($datediff / 60);
$seconds = floor($datediff);

这是满的纸盒https://pastebin.com/tzbn2gzw
有什么想法吗?
谢谢

i7uaboj4

i7uaboj41#

发生此错误的原因是在计算天数后未减少日期差异。但我认为使用datetime对象来进行这种计算更合适

$today = time();
$createdday = mysql_to_unix($ptime);
$today_d = new DateTime();
$today_d->setTimestamp($today);
$createdday_d = new DateTime();
$createdday_d->setTimestamp($createdday);
print_r($today_d->diff($createdday_d));

演示

相关问题