За последние 24 часа нас посетили 34356 программистов и 1695 роботов. Сейчас ищут 716 программистов ...

красивая дата из секунд

Тема в разделе "PHP для новичков", создана пользователем Nazorei, 17 июн 2009.

  1. Nazorei

    Nazorei Активный пользователь

    С нами с:
    1 фев 2007
    Сообщения:
    228
    Симпатии:
    0
    В переменной хранится некое значение в секундах
    нужно вывести это значение в "нормальном" формате:

    Код (Text):
    1. if ($zn < 3600) // $zn = "xxx секунд";
    2. if ($zn < 86400) // $zn = "xx ч. xx мин.";
    3. if ($zn >= 86400) // $zn = "xx дн. xx ч. xx мин.";
    заранее благодарю за помощь
     
  2. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    PHP:
    1. <?php
    2. // $timestamp - временная отметка в секундах.
    3. echo date('H:i:s', $timestamp);
    4. ?>
     
  3. Nazorei

    Nazorei Активный пользователь

    С нами с:
    1 фев 2007
    Сообщения:
    228
    Симпатии:
    0
    Код (Text):
    1. $zn = time()+7100; // 21:04:21
    2. $zn = 7100; // 04:58:20
    разве это оно? :)
     
  4. Nazorei

    Nazorei Активный пользователь

    С нами с:
    1 фев 2007
    Сообщения:
    228
    Симпатии:
    0
    аа, тут походу нужно учитывать GMT, может ошибаюсь)
     
  5. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Да, а вы думали php сам догадается?
     
  6. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    давным давно, в далекой галактике...


    PHP:
    1.  
    2. <?
    3.  
    4. # склоняем по падежам
    5. function OOPSSpell($num, $base, $endings) {
    6.     if ($num % 100 >= 11 && $num % 100 <= 19) {
    7.         return $base . $endings[2];
    8.     } else {
    9.         switch ($num % 10) {
    10.           case 1:
    11.           return $base . $endings[0];
    12.           case 2: case 3: case 4:
    13.           return $base . $endings[1];
    14.           default:
    15.           return $base . $endings[2];
    16.         }
    17.      }
    18. }
    19.  
    20. define('WORKING_TIME_SHORT',1);
    21. define('WORKING_TIME_LONG',2);
    22. define('WORKING_TIME_CLOCK',4);
    23. define('WORKING_TIME_DAYS',8);
    24.  
    25. function OOPSWorking($TIME,$FORMAT=WORKING_TIME_CLOCK) {
    26.  
    27.     $ONE_MIN = 60;
    28.     $ONE_HRS = $ONE_MIN * 60;
    29.     $ONE_DAY = $ONE_HRS * 24;
    30.  
    31.     $DAYS = @intval($TIME / $ONE_DAY);
    32.     $HRSS = @intval(($TIME - ($DAYS * $ONE_DAY)) / $ONE_HRS);
    33.     $MINS = @intval(($TIME - ($DAYS * $ONE_DAY + $HRSS * $ONE_HRS)) / $ONE_MIN);
    34.     $SECS = @intval(($TIME - ($DAYS * $ONE_DAY + $HRSS * $ONE_HRS + $MINS * $ONE_MIN)));
    35.  
    36.     $RET = "";
    37.  
    38.     switch($FORMAT) {
    39.  
    40.         case WORKING_TIME_DAYS:
    41.             if($DAYS) {
    42.                 $RET .= $DAYS."д ";
    43.             }
    44.  
    45.             if($HRSS) {
    46.                 $RET .= $HRSS."ч ";
    47.             }
    48.  
    49.             if($MINS) {
    50.                 $RET .= $MINS."м ";
    51.             }
    52.  
    53.  
    54.             break;
    55.         case WORKING_TIME_SHORT:
    56.             if($DAYS) {
    57.                 $RET .= $DAYS."д ";
    58.             }
    59.  
    60.             if($HRSS) {
    61.                 $RET .= $HRSS."ч ";
    62.             }
    63.  
    64.             if($MINS) {
    65.                 $RET .= $MINS."м ";
    66.             }
    67.  
    68.             if($SECS) {
    69.                 $RET .= $SECS."с ";
    70.             }
    71.  
    72.             break;
    73.  
    74.         case WORKING_TIME_CLOCK:
    75.             if($DAYS) {
    76.                 $RET .= $DAYS."/";
    77.             }
    78.  
    79.             if($HRSS) {
    80.                 $RET .= sprintf("%02d",$HRSS).":";
    81.             }
    82.  
    83.             if($MINS) {
    84.                 $RET .= sprintf("%02d",$MINS).".";
    85.             }
    86.  
    87.             $RET .= sprintf("%02d",$SECS)."";
    88.             break;
    89.  
    90.         case WORKING_TIME_LONG:
    91.             if($DAYS)
    92.                 $RET .= $DAYS." ".OOPSSpell($DAYS,"",array("день","дня","дней"))." ";
    93.  
    94.             if($HRSS)
    95.                 $RET .= $HRSS." ".OOPSSpell($HRSS,"час",array("","а","ов"))." ";
    96.  
    97.             if($MINS)
    98.                 $RET .= $MINS." ".OOPSSpell($MINS,"минут",array("а","ы",""))." ";
    99.            
    100.             if($SECS)
    101.                 $RET .= $SECS." ".OOPSSpell($SECS,"секунд",array("а","ы",""));
    102.             break;
    103.     }
    104.  
    105.  
    106.     return $RET;
    107. }
    108. ?>
    109.