PHP:一小时前,x小时前
因此,我有这个函数来显示从插入的unix格式时间戳(time())生成的时间: 我想扩展这个函数,如果它不到24小时,它应该计算并回显“x小时前”,如果是昨天或以后,它应该像现在一样回显(回显:“.$time;”)PHP:一小时前,x小时前,php,Php,因此,我有这个函数来显示从插入的unix格式时间戳(time())生成的时间: 我想扩展这个函数,如果它不到24小时,它应该计算并回显“x小时前”,如果是昨天或以后,它应该像现在一样回显(回显:“.$time;”) 如何做到这一点?不到24小时前是3600*24,即 $time_now-3600*24 然后 不到24小时前为3600*24,即 $time_now-3600*24 然后 你遇到的困难是什么?困难?这只是一个很好的/简单的方法,不是我想要的一个特别的难度“级别”。(对不起,如果我
如何做到这一点?不到24小时前是3600*24,即
$time_now-3600*24
然后
不到24小时前为3600*24,即
$time_now-3600*24
然后
你遇到的困难是什么?困难?这只是一个很好的/简单的方法,不是我想要的一个特别的难度“级别”。(对不起,如果我误解了你的问题,我不是英国人)你遇到的困难是什么?困难?这只是一个很好的/简单的方法,不是我想要的一个特别的难度“级别”。(对不起,如果我误解了你的问题,我不是英语)可能的时间重复是以秒为单位的,除法应该是
$diff/(24*3600)
两次编辑:dbl按时间戳引用,$diff/3600不是24。否则,就必须采取切实可行的办法;创建一个函数并添加几个选项(…“几天前”、“上周三”等),您的状态就很好了。@Hans:Tanks,更新了代码$diff/3600当然是正确的。@matiasf我刚刚测试了这段代码,得到的输出是0.584444小时前的。每次我刷新页面时,“0.584444小时前”会更改为其他不同的值,如0.6216666667等等。@Karem:您应该使用intval($diff)将$diff转换为整数。对于最近的时间戳,可以执行单独的检查,并返回分钟值。时间以秒为单位,除法应为$diff/(24*3600)
两次编辑:dbl按时间戳引用,$diff/3600而不是24。否则,就必须采取切实可行的办法;创建一个函数并添加几个选项(…“几天前”、“上周三”等),您的状态就很好了。@Hans:Tanks,更新了代码$diff/3600当然是正确的。@matiasf我刚刚测试了这段代码,得到的输出是0.584444小时前的。每次我刷新页面时,“0.584444小时前”会更改为其他不同的值,如0.6216666667等等。@Karem:您应该使用intval($diff)将$diff转换为整数。对于最近的时间戳,可以执行单独的检查,并返回分钟值。
if($timestamp > (time() - (3600*24))) {
// Calculate time difference
$diff = time() - $timestamp;
$hours = $diff / 3600;
echo $hours . " hours ago";
} else {
echo "at" . date("x-y-z", $timestamp");
}
/*
* @author Alexander.Plutov
* @param int $timestamp
* @param float $hours_ago
* @return date
*/
function get_time($timestamp, $hours_ago) {
$seconds_ago = $hours_ago * 60 * 60 * 24;
$new_timestamp = $timestamp - $seconds_ago;
$time = date('G:i', $new_timestamp);
echo " at: ".$time;
return $time;
}