"PHP" / Говнокод #7706 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
<?php  
function makestime($string) {  

$day=floor($string/86400);  
$hours=floor(($string/3600)-$day*24);  
$min=floor(($string-$hours*3600-$day*86400)/60);  
$sec=$string-($min*60+$hours*3600+$day*86400);  

return $day.' дн. '.$hours.':'.$min.':'.$sec;  
}  
?>

Перевод секунд в дни
Функция из WAP-MotoR CMS.
Воистину, язык программирования дат.

Запостил: 7ion 7ion, (Updated )

Комментарии (15) RSS

    • А причем тут функция date, я как понимаю он тут секунды в дни переводит,
      а не unixtime в дату.
      Ответить
      • Хм, а ведь правда.
        Задумался. А как тогда можно перевести секунды в дни по-другому?
        Ответить
        • Ну в принципе я тоже особо других способов не вижу, единственное сократить количество математических операций.
          Может кто-то из других отписавшихся в теме, знает. Ждем лучшего варианта.
          Ответить
        • Сложно придумать что-то другое. Если погуглить по "php seconds to days hours minutes", можно встретить и более фееричные варианты
          Ответить
          • Зачем стерли это?
            >P.S. Есть извращенская идея, но она работает только для интервалов менее 31 дня:
            >function stupid_sec2dhms($sec) {
            > return date('d дн. h:m:s', mktime(0, 0, 0, 1, 1) + $sec);
            >}
            date('d дн. h:m:s', $sec); отлично бы сработало в пределах 31 дня.
            Зачем тут mktime вот не понимаю.
            Ответить
            • До меня дошло, что для интервалов меньше дня всегда будет отображаться первый день месяца ('d' = 1), вне зависимости от реального числа прошедших дней.
              Да, mktime() не нужен, и так с 1 января будет время отсчитываться.
              В итоге работает только для интервалов больше дня, причём нужно будет отнимать число секунд в дне.
              Ответить
              • >причём нужно будет отнимать число секунд в дне
                Что?
                Это конструкция будет работать в пределах 30 дней, но для корректной работы надо будет отнимать от дня 1 - день будет убегать вперед.
                В принципе, все проблемы только в днях, поэтому можно будет приделать костыль, который, если секунд больше, чем в 31 дне, будет плюсовать +31 к дням. Если больше, чем на 60 дней, то +60 дней. И т.д. до декабря.
                Но это очередной ГК будет.

                Получается, что этот говнокод и не особо говнокод.
                Ответить
  • Ну, нравятся человеку округления, ничего не сделать с этим.

    > $string/86400

    Делим строку? о_О
    Ответить
  • >Функция из WAP-MotoR CMS.
    Да сюда можно весь дистр запостить. Там говно на говне сидит и говном погоняет.
    Ответить
  • м"O?L$Y:F?Y)W"D I:T"W O?E.P,D!X.J"Z)B?M.U!D:I?Z,Q"U$L:Y?G)V(Z"O(V)EN:J!A!B:JK)N"D$C)P G?L"Z(D,D(T?P"R!Y:BL,S(H)M!G,I,Q:S"V!Y,O)L?M"B!N"R"X.H.F!T?Y:T)W:L D:I$I,S$K.G.M(M:I GG$J(Y?U"Y$J(D:L"Q.ME:X$T"M C A:N!S$J)V$T)WT)S)Y)J$B,K(O"A)U!B"C?Z"DD"JQ)N L"S!L:S,XE P?J.Z A,X N?R:JA.X.V.J$V.G:B M(SТIXIDSRRRUFMFR
    Ответить

Добавить комментарий

Помни, guest, за тобой могут следить!

    А не использовать ли нам bbcode?


    8