我在转换时间方面遇到了问题。由于某种原因,它似乎是默认回到1970年,我相信是unix的默认时间。即时通讯使用此代码,当我运行该程序时,我得到42年而不是2年。我错过了什么请帮忙 这是代码
<?php
function convertime($ptime) {
$etime = time() - $ptime;
if($etime < 60) {
return 'less than minute ag';
}
$a = array(12 * 30 * 24 * 60 * 60 => 'year', 30 * 24 * 60 * 60 => 'month', 24 * 60 * 60 => 'day', 60 * 60 => 'hour', 60 => 'minute' // 1 => 'second'
);
foreach($a as $secs => $str) {
$d = $etime / $secs;
if($d >= 1) {
$r = round($d);
return $r . ' ' . $str . ($r > 1 ? 's' : '');
}
}
}
?>
<?php
$ctime = 2009-02-23 10:09:00 //time from mysql
echo convertime($ctime);
?>
答案 0 :(得分:2)
在您的时间戳周围包裹strtotime()
:
$ctime = strtotime('2009-02-23 10:09:00'); //time from mysql
您需要将时间戳与时间戳进行比较。
答案 1 :(得分:1)
<?php
function convertime($ptime) {
$etime = time() - $ptime;
if($etime < 60) {
return 'less than minute ag';
}
$a = array(12 * 30 * 24 * 60 * 60 => 'year', 30 * 24 * 60 * 60 => 'month', 24 * 60 * 60 => 'day', 60 * 60 => 'hour', 60 => 'minute' // 1 => 'second'
);
foreach($a as $secs => $str) {
$d = $etime / $secs;
if($d >= 1) {
$r = round($d);
return $r . ' ' . $str . ($r > 1 ? 's' : '');
}
}
}
?>
<?php
$ctime = strtotime('2009-02-23 10:09:00'); //time from mysql
echo convertime($ctime);
?>
试试吧