从mysql数据库获取时间戳并获取php以天,小时,分钟计算时间? [重复]
Possible Duplicate:
PHP: formatting time Stackoverflow or Apple Mail-style
Hi can someone please help me i am echoing out the timestamp in the mysql table but i want php to calculate the timestamp in days/hours/minutes.
Is this possible, im still new to php and mysql and am learning so could someone please guide me in the right direction or show me how this would be done. thank you
<? echo "{$news['date_added']}";?>
i want the output to be number of seconds: added 12 seconds ago or added 3 minutes ago or added 4 days ago or added 4 months ago
would i be right in thinking the script should look something like this:
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 ?>
$datetime1 = new DateTime();
$datetime2 = new DateTime('2013-02-03 19:13:00');
$interval = $datetime1->diff($datetime2);
echo $interval->format('%h hours %i minutes');
Reference
Look at the date()
function in the manual. http://php.net/manual/en/function.date.php
<?php echo date("Y-m-d",$news['date_added']); ?>
Will print for example:
2013-02-04
If your timestamp in MySQL table you can use FROM_UNIXTIME function to get it in appropriate format.