- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Здравствуйте, уважаемые!
Вот такой код:
// convert seconds number to human readable format
function smarty_modifier_SecToMin($seconds)
{
// extract hours
$minResult = floor($seconds/60);
/// if minutes is between 0-9, add a "0" --> 00-09
if($minResult < 10){$minResult = 0 . $minResult;}
/// get sec
$secResult = ($seconds/60 - $minResult)*60;
/// if secondes is between 0-9, add a "0" --> 00-09
if($secResult < 10){$secResult = 0 . $secResult;}
/// return result
return $minResult.":".$secResult;
}
Проблема в отображении если секунд меньше 60.
То есть к примеру полторы минуты нормально 01:30 но если минут нет, то секунды встают на их место. К примеру 30 секунд отображаются 30:00
Как исправить это?
Как вариант
Вроде как все верно выдает:
вывод:
echo '90: '.smarty_modifier_SecToMin(90).'<br>';
echo '30: '.smarty_modifier_SecToMin(30).'<br>';
выдаст:
90: 01:30
30: 00:30
nui, у меня на PHP 5.4.14 выдает правильно, но есть другой косяк - для 130, 190 и 490 секунд выдает лишний нолик:
А дальше бывают вот такие веселые результаты:
И предложу свой вариант функции:
kom09, спасибо. Ваша функция так же работает, то есть секунды с минутами меняются.
nui, ИМХО у вас хулиганит какой-то код за пределами smarty_modifier_SecToMin.
А дальше бывают вот такие веселые результаты:
Я вообще с осторожностью отношусь к выражениям, где сначала делают из цифры строку:
а потом пытаются строку вычесть из числа:PHP - он, конечно, умный, но с юмором:).961 16:00.99999999999994
У меня "echo smarty_modifier_SecToMin(30);" 00:30 выводит.