2016-01-08 3 views
1

У меня есть следующий запрос, чтобы отобразить Отформатированную datetime объектаPHP Формат Datetime, чтобы не иметь Нулей

echo $interval->format("%hh %im %ss"); 

который будет возвращать время как что-то вроде 0h 5m 12s или 3h 15m 2s

Есть ли способ элегантно вернуть datetime, чтобы не было 0s спереди? То есть вместо 0h 0m 3s, было бы просто показать 3s

+4

попробовать 'подрезать (str_replace (массив ('0h', '0m'), '', $ formatresult))', если класс не могу сделать это – JustOnUnderMillions

+0

^^ Отлично ответ – Ben

+0

только простой;) – JustOnUnderMillions

ответ

0

Я нашел решение одной из моих past questions, который использует rtrim, sprintf и сравнений для $interval.

$interval = $future_date->diff($now); 
    $time_until = rtrim(sprintf("%s%s%s", 
     $interval->h > 0 ? $interval->h . "h " : "", 
     $interval->i > 0 ? $interval->i . "m " : "", 
     $interval->s > 0 ? $interval->s . "s " : "" 
     ) 
    ); 

Если время > 0, то он будет печатать время. В противном случае, это будет просто оставить пустым

+0

* Я нашел решение "* - можете ли вы опубликовать источник для кредитования автора. Или, если вы обнаружили, вы имеете в виду пробную версию или ошибку самостоятельно или? –

+0

Это было на самом деле из другого моего другого вопроса, но в коде решений это было. – Bijan

+0

не будет работать для результата '1h 0m 3s', тогда' 1h 3s' вместо '1h 0m 3s';) Где находится rome? – JustOnUnderMillions

Смежные вопросы