可能重复:
PHP: formatting time Stackoverflow or Apple Mail-style
嗨,有人可以帮助我,我正在回应mysql表中的时间戳,但我希望php以天/小时/分钟计算时间戳。
这是可能的,我仍然是php和mysql的新手,我正在学习,所以有人可以指导我朝正确的方向或告诉我如何做到这一点。谢谢
<? echo "{$news['date_added']}";?>
我希望输出为秒数:在12秒前添加或3分钟前或在4天前添加或添加4个月前
我认为脚本看起来应该是这样的:
function nicetime($date)
{
if(empty($date)) {
return "No date provided";
}
$periods = array("second", "minute", "hour", "day", "week", "month", "year", "decade");
$lengths = array("60","60","24","7","4.35","12","10");
$now = time();
$unix_date = strtotime($date);
// check validity of date
if(empty($unix_date)) {
return "Bad date";
}
// is it future date or past date
if($now > $unix_date) {
$difference = $now - $unix_date;
$tense = "ago";
} else {
$difference = $unix_date - $now;
$tense = "from now";
}
for($j = 0; $difference >= $lengths[$j] && $j < count($lengths)-1; $j++) {
$difference /= $lengths[$j];
}
$difference = round($difference);
if($difference != 1) {
$periods[$j].= "s";
}
return "$difference $periods[$j] {$tense}";
}
$date = "{$news['content']}";
$result = nicetime($date); // 2 days ago ?>
答案 0 :(得分:2)
$datetime1 = new DateTime();
$datetime2 = new DateTime('2013-02-03 19:13:00');
$interval = $datetime1->diff($datetime2);
echo $interval->format('%h hours %i minutes');
参考
答案 1 :(得分:0)
查看手册中的date()
功能。 http://php.net/manual/en/function.date.php
<?php echo date("Y-m-d",$news['date_added']); ?>
将打印例如:
2013-02-04
答案 2 :(得分:0)
如果你在MySQL表中的时间戳,你可以使用 FROM_UNIXTIME 函数以适当的格式获取它。