Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- /*
- * Функция ConvertSecToWord($sec) позволяет получить
- * лексически-грамотные предложения о оставшемся времени.
- * Пример: ConvertSecToWord(123456789) выведет:
- * 3 года 11 месяцев 3 дня 21 час 33 минуты 9 секунд
- * !!!Внимание, обратите внимание на $this && public (ООП)
- */
- public function ConvertSecToWord($sec){
- $mes = '';
- $SecOnYear = 31536000;
- $SecOnMonth = 2592000;
- $SecOnWeek = 604800;
- $SecOnDay = 86400;
- $SecOnHour = 3600;
- $SecOnMin = 60;
- if (intval($sec / $SecOnYear) > 0){
- $year = intval($sec / $SecOnYear);
- $sec = $sec - ($year * $SecOnYear);
- $mes = $this->CorrectString($year,'year');
- }
- if (intval($sec / $SecOnMonth) > 0){
- $month = intval($sec / $SecOnMonth);
- $sec = $sec - ($month * $SecOnMonth);
- $mes .= $this->CorrectString($month,'month');
- }
- if (intval($sec / $SecOnWeek) > 0){
- $week = intval($sec / $SecOnWeek);
- $sec = $sec - ($week * $SecOnWeek);
- $mes .= $this->CorrectString($week,'week');
- }
- if (intval($sec / $SecOnDay) > 0){
- $day = intval($sec / $SecOnDay);
- $sec = $sec - ($day * $SecOnDay);
- $mes .= $this->CorrectString($day,'day');
- }
- if (intval($sec / $SecOnHour) > 0){
- $hour = intval($sec / $SecOnHour);
- $sec = $sec - ($hour * $SecOnHour);
- $mes .= $this->CorrectString($hour,'hour');
- }
- if (intval($sec / $SecOnMin) > 0){
- $min = intval($sec / $SecOnMin);
- $sec = $sec - ($min * $SecOnMin);
- $mes .= $this->CorrectString($min,'min');
- }
- if ($sec > 0) $mes .= $this->CorrectString($sec,'sec');
- return $mes;
- }
- public function CorrectString($number, $type){
- $word = array('year' => array('год' ,'года' ,'лет' ),
- 'month' => array('месяц' ,'месяца' ,'месяцев'),
- 'week' => array('неделя' ,'недели' ,'недель' ),
- 'day' => array('день' ,'дня' ,'дней' ),
- 'hour' => array('час' ,'часа' ,'часов' ),
- 'min' => array('минута' ,'минуты' ,'минут' ),
- 'sec' => array('секунда','секунды','секунд' ));
- $number = (string) $number;
- if (strlen($number) > 1){
- if ($number[strlen($number)-2].$number[strlen($number)-1] == '11'){
- $LastNum = '10';
- }else{
- $LastNum = $number[strlen($number)-1];
- }
- }else{
- $LastNum = $number[strlen($number)-1];
- }
- if ($LastNum == 1){
- $str = 0;
- }elseif($LastNum == 2 || $LastNum == 3 || $LastNum == 4){
- $str = 1;
- }else{
- $str = 2;
- }
- return ($number.' '.$word[$type][$str].' ');
- }
- ?>
Advertisement
Add Comment
Please, Sign In to add comment