gpt4 book ai didi

php - 计算时差(日期时间)时的 strtotime 和奇怪的结果

转载 作者:可可西里 更新时间:2023-11-01 08:06:02 25 4
gpt4 key购买 nike

我已经尝试了一段时间,但无法让该死的代码正常工作。这是我的第一篇文章,我经历了一些,尝试了一百万种不同的方式。我只是想得到时间上的差异,然后我准备好了,我会弄清楚剩下的......

现在,它给了我不寻常的答案(假设有 2 小时的差异,它会给我 14 个答案)请原谅我的编码,我已经很多年没有这样做了,也没有接受过真正的正规培训。我的评论会尽可能详尽,非常感谢。任何链接表示赞赏。我已经尝试了很多。使用 PHP 5.3.something,并正在使用 Wordpress 3.7.1 数据库。

预先感谢初学者的帮助。我想显示“x 小时前更新”。一旦我让该死的东西显示正确的结果,我就会解决剩下的问题。

//This is the current date, putting it into strtotime so everything is in the same format. It displays accurately.

$currentDate = date("Y-m-d");
$currentTime = date("H:i:s");

$currentDateHour = date("H", strtotime($currentDate . $currentTime));

// This is the date I'm pulling from the database, it only displays
// when in strtotime for some reason. It displays accurately to what is in the mySQL DB
$upDate = date("Y-m-d H", strtotime($row2[post_date]));


// Some variables to make life easier for later if statements if I ever get that far. Displays accurately.
$upDatehour = date("H", strtotime($row2[post_date]));

// trying simple subtraction
$hour = $currentDateHour - upDatehour;

// this is where the result is incorrect, what is wrong here? Any method I've tried gives me the same result, with or without strotime.. it's gotta be something simple, always is!
print strtotime($hour);

最佳答案

您可以大大简化您的代码。我建议重构它以使用 DateTime特别是 DateTime::diff() .

$now = new DateTime();
$post = new DateTime($row2['post_date']);
$interval = $now->diff($post);
echo "Updated " . $interval->h . " hours ago";

工作示例:http://3v4l.org/23AL6

请注意,这最多只会显示 24 小时的差异。如果您想要显示所有时间,即使相差超过 24 小时,您也需要计算天数。像这样:

$hours = $interval->h + ($interval->format("%a") * 24);
echo "Updated $hours hours ago";

工作示例:http://3v4l.org/ilItU

关于php - 计算时差(日期时间)时的 strtotime 和奇怪的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20337187/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com