rendered paste body<?phpfunction format_daterange($start_date, $end_date, $format = 'd', $full_text, $start_text, $end_text, $culture = null, $charset = null){ if ($start_date != '' && $end_date != '') { return sprintf($full_text, format_date($start_date, $format, $culture, $charset), format_date($end_date, $format, $culture, $charset)); } else if ($start_date != '') { return sprintf($start_text, format_date($start_date, $format, $culture, $charset)); } else if ($end_date != '') { return sprintf($end_text, format_date($end_date, $format, $culture, $charset)); }}function format_date($date, $format = 'd', $culture = null, $charset = null){ static $dateFormats = array(); if (is_null($date)) { return null; } if (!$culture) { $culture = sfContext::getInstance()->getUser()->getCulture(); } if (!$charset) { $charset = sfConfig::get('sf_charset'); } if (!isset($dateFormats[$culture])) { $dateFormats[$culture] = new sfDateFormat($culture); } return $dateFormats[$culture]->format($date, $format, null, $charset);}function format_datetime($date, $format = 'F', $culture = null, $charset = null){ return format_date($date, $format, $culture, $charset);}function distance_of_time_in_words($from_time, $to_time = null, $include_seconds = false){ $to_time = $to_time? $to_time: time(); $distance_in_minutes = floor(abs($to_time - $from_time) / 60); $distance_in_seconds = floor(abs($to_time - $from_time)); $string = ''; $parameters = array(); if ($distance_in_minutes <= 1) { if (!$include_seconds) { $string = $distance_in_minutes == 0 ? 'меньше минуты' : '1 минута'; } else { if ($distance_in_seconds <= 5) { $string = 'меньше 5 секунд'; } else if ($distance_in_seconds >= 6 && $distance_in_seconds <= 10) { $string = 'меньше 10 секунд'; } else if ($distance_in_seconds >= 11 && $distance_in_seconds <= 20) { $string = 'меньше 20 секунд'; } else if ($distance_in_seconds >= 21 && $distance_in_seconds <= 40) { $string = 'полминуты'; } else if ($distance_in_seconds >= 41 && $distance_in_seconds <= 59) { $string = 'меньше минуты'; } else { $string = '1 минуту'; } } } else if ($distance_in_minutes >= 2 && $distance_in_minutes <= 44) { $string = '%minutes% минут'; $parameters['%minutes%'] = $distance_in_minutes; if (($parameters['%minutes%'] % 10) == 1) $string = '%minutes% минуту'; else if (($parameters['%minutes%'] % 10) > 1 && ($parameters['%minutes%'] % 10) < 5) $string = '%minutes% минуты'; else $string = '%minutes% минут'; } else if ($distance_in_minutes >= 45 && $distance_in_minutes <= 89) { $string = 'около часа'; } else if ($distance_in_minutes >= 90 && $distance_in_minutes <= 1439) { $string = 'около %hours% часов'; $parameters['%hours%'] = round($distance_in_minutes / 60); } else if ($distance_in_minutes >= 1440 && $distance_in_minutes <= 2879) { $string = '1 день'; }# [0]нет ответов|# {n: n % 10 = 1}%count% ответ|# {n: n % 10 > 1 && n % 10 < 5}%count% ответа|# (1,Inf+]%count% ответов' else if ($distance_in_minutes >= 2880 && $distance_in_minutes <= 43199) { $string = '%days% дней'; $parameters['%days%'] = round($distance_in_minutes / 1440); if (($parameters['%days%'] % 10) == 1) $string = '%days% день'; else if (($parameters['%days%'] % 10) > 1 && ($parameters['%days%'] % 10) < 5) $string = '%days% дня'; else $string = '%days% дней'; } else if ($distance_in_minutes >= 43200 && $distance_in_minutes <= 86399) { $string = 'около месяца'; } else if ($distance_in_minutes >= 86400 && $distance_in_minutes <= 525959) { $string = '%months% месяцев'; $parameters['%months%'] = round($distance_in_minutes / 43200); if (($parameters['%months%'] % 10) == 1) $string = '%months% месяц'; else if (($parameters['%months%'] % 10) > 1 && ($parameters['%months%'] % 10) < 5) $string = '%months% месяца'; else $string = '%months% месяцев'; } else if ($distance_in_minutes >= 525960 && $distance_in_minutes <= 1051919) { $string = 'около года'; } else { $string = 'больше %years% лет'; $parameters['%years%'] = floor($distance_in_minutes / 525960); if (($parameters['%years%'] % 10) == 1) $string = '%years% год'; else if (($parameters['%years%'] % 10) > 1 && ($parameters['%years%'] % 10) < 5) $string = '%days% года'; else $string = '%years% лет'; } if (sfConfig::get('sf_i18n')) { use_helper('I18N'); return __($string, $parameters); } else { return strtr($string, $parameters); }}// Like distance_of_time_in_words, but where to_time is fixed to time()function time_ago_in_words($from_time, $include_seconds = false){ return distance_of_time_in_words($from_time, time(), $include_seconds);}?>