56 lines
1.2 KiB
PHP
56 lines
1.2 KiB
PHP
<?php
|
||
|
||
/**
|
||
* formatuje tak date posta, żeby zamiast konkretnej daty wyświetlało : wczoraj , przed wczoraj, x dni temu, x tygodni temu, x miesięcy temu, x lat temu
|
||
*
|
||
* @param $str
|
||
* @return unknown_type
|
||
*/
|
||
|
||
function smarty_modifier_toForumDate($str){
|
||
|
||
|
||
$minute = 60;
|
||
$hour = $minute * 60;
|
||
$day = $hour * 24;
|
||
$week = $day * 7;
|
||
|
||
|
||
$now = time();
|
||
$todayStart = $now - ($now % $day) - $hour;
|
||
|
||
$return = '';
|
||
|
||
if($str > $todayStart){
|
||
$return = 'dzisiaj '.date('G:i', $str);
|
||
}elseif($str > $todayStart - $day){
|
||
$return = 'wczoraj '.date('G:i', $str);
|
||
}elseif($str > $todayStart - $week + $day){
|
||
$strStart = $str - $str % $day - $hour;
|
||
$dayCount = ($todayStart - $strStart) / $day;
|
||
$return = intval($dayCount).' dni temu '.date('G:i',$str);
|
||
}elseif($str > $todayStart - $week*9){
|
||
$strStart = $str - $str % $day - $hour;
|
||
$dayCount = ($todayStart - $strStart) / $day;
|
||
$weekCount = $dayCount / 7 + ($dayCount % 7 == 0?0:1);
|
||
switch($weekCount){
|
||
case 1:
|
||
$return = 'tydzieñ temu';
|
||
break;
|
||
case 2:
|
||
case 3:
|
||
case 4:
|
||
$return = intval($weekCount).' tygodnie temu';
|
||
default:
|
||
$return = intval($weekCount).' tygodni temu';
|
||
|
||
}
|
||
}else{
|
||
$return = date('Y-m-s G:i',$str);
|
||
}
|
||
|
||
|
||
|
||
return $return;
|
||
}
|
||
?>
|