به دو زبان فارسی و انگلیسی هست ساعت سیستم هم باید دقیق باشه .
function ago($tm, $lang = 'fa', $ashtml = true) {
$local = array('style' => array('fa' => 'style="direction:rtl;"',
'en' => 'style="direction:ltr"'),
'times' => array(
'fa' => array('ثانیه', 'دقیقه', 'ساعت', 'روز', 'هفته', 'ماه', 'سال', 'دهه'),
'en' => array('second', 'minute', 'hour', 'day', 'week', 'month', 'year', 'decade')),
'ago' => array('fa' => 'پیش', 'en' => 'ago'));
if (intval($tm) > 0) {
$cur_tm = time();
$dif = $cur_tm - $tm;
$lngh = array(1, 60, 3600, 86400, 604800, 2630880, 31570560, 315705600);
for ($v = sizeof($lngh) - 1; ($v >= 0) && (($no = $dif / $lngh[$v]) <= 1); $v--)
; if ($v < 0)
$v = 0; $_tm = $cur_tm - ($dif % $lngh[$v]);
$no = floor($no);
if ($no <> 1 && $lang == 'en')
$local['times'][$lang][$v] .= 's'; $x = sprintf("%d %s ", $no, $local['times'][$lang][$v]);
if ($ashtml)
return " " . $x . ' ' . $local['ago'][$lang] . "";
else
return $x . ' ' . $local['ago'][$lang];
} else {
return '-';
}
}
-
نکته اگر از الگو مانند MVC , ... استفاده می کنی درون VIew قرار نده و فایل درون Controller باشه.
استفاده :
<time class="entry-date">
<?php echo(ago(strtotime($row->dttime))); ?>
</time>
نمایی از خروجی :