所以,我得到了这个工作代码,它将 MySQL 日期转换为 UNIX 时间戳,并从当前 date() 中减去它以显示“自 X 以来经过的时间”类似计时器。(从数据库中获取日期的部分丢失了,因为它在另一个脚本中)
<?php
function time_elapsed($secs){
$bit = array(
' year' => $secs / 31556926 % 12,
' week' => $secs / 604800 % 52,
' day' => $secs / 86400 % 7,
' hour' => $secs / 3600 % 24,
' minute' => $secs / 60 % 60,
' second' => $secs % 60
);
foreach($bit as $k => $v){
if($v > 1)$ret[] = $v . $k . 's';
if($v == 1)$ret[] = $v . $k;
}
array_splice($ret, count($ret)-1, 0, 'and');
$ret[] = 'ago.';
return join(' ', $ret);
}
$nowtime = time() + 10; //add 10s to avoid error
$oldtime = strtotime($mysqltime2);
$time_elapsed = time_elapsed($nowtime-$oldtime)."\n";
echo wordwrap($time_elapsed,35,"<br />\n"); //split long line
?>
如果脚本在 MySQL 日期的同一时间执行,我设法通过在当前时间戳上增加 10 秒来修复错误报告缺失数组或其他问题。
我遇到的另一个问题是脚本显示“和 X 秒”,即使它之前没有分钟/小时/天/等。例如“ X 秒”“Y 分X秒”“Z 小时 Y 分X秒”“N 天 Z 小时 Y 分X秒”
只有在它之前没有分钟/小时/等时,我才想在秒之前删除“和”。
有关如何解决此问题的任何提示?