|
|
|
| в общем нужно узнать сколько прошло часов и минут, имея секунды. например 8605 сек.
видел тут красивый вывод в одну строку, но что-то найти не могу.. вроде через sprintf() делали. | |
|
|
|
|
|
|
|
для: а-я
(31.01.2010 в 11:38)
| | Способ без sprintf():
Пусть $start - содержит исходное кол-во секунд
<?php
$sum = time() - $start;
if ($sum < 3600 * 24) {
echo 'Прошло ' , date("H часов, i секунд", time() - $start);
} else {
echo 'Прошло ' , date("d дней, H часов, i секунд", time() - $start);
}
|
Учитывается, что может пройти больше суток, хотя грубовато..да и "часов, дней" не склоняются | |
|
|
|
|
|
|
|
для: neadekvat
(31.01.2010 в 12:24)
| | нельзя. | |
|
|
|
|
|
|
|
для: Trianon
(31.01.2010 в 12:41)
| | А подробнее? | |
|
|
|
|
|
|
|
для: neadekvat
(31.01.2010 в 12:48)
| | date() из таймштамапа форматирует дату, у вас если старт совпадет с текущим временем всегда будет 1 января 1970 года | |
|
|
|
|
|
|
|
для: GeorgeIV
(31.01.2010 в 12:52)
| | а дальше? 0 часов и ноль минут, что вполне нормально. Хотя через попу.
Какой вариант будет лучше? | |
|
|
|
|
|
|
|
для: neadekvat
(31.01.2010 в 12:54)
| | вам уже посоветовали, запустить и проверить.... попа сама проявится | |
|
|
|
|
|
|
|
для: neadekvat
(31.01.2010 в 12:48)
| | А подробнее - я устал. Я опровергал этот метод здесь с десяток раз, хотя если человек живет далеко от Лондона либо пишет летом, никакие опровержения не нужны - достаточно просто запустить скрипт.
Но все равно появляются деятели вроде Вас, которым правила применения функций не писаны.
Поэтому подробнее сейчас будете рассказывать Вы.
Почему не прочли мануал, почему не проверили скрипт перед отправкой, и почему он работает именно так, как работает, а не так, как ожидает пользователь. | |
|
|
|
|
|
|
|
для: Trianon
(31.01.2010 в 12:54)
| | Значит, дело во временных поясах..да, не подумавши об этом.
Еще чуть-чуть и мне станет стыдно.
Пойду манул читать :-[ | |
|
|
|
|
|
|
|
для: neadekvat
(31.01.2010 в 12:56)
| | дело не столько в временных поясах, сколько в физике процесса.
Если абсолютный момент времени, а есть интервал времени.
Функция, которая годится для отображения первого, не подходит для отображения второго.
И наоборот. | |
|
|
|
|
|
|
|
для: Trianon
(31.01.2010 в 12:59)
| | Да, функция там несколько больше, чем просто date и time.
Как бы вы решили задачу автора? | |
|
|
|
|
|
|
|
для: neadekvat
(31.01.2010 в 13:08)
| |
<? $seconds = 8605;
echo sprintf("%d:%02d", (int)($seconds/3600), ((int)($seconds/60))%60);
|
| |
|
|
|
|
|
|
|
для: Trianon
(31.01.2010 в 13:37)
| | Благодарю.. =) | |
|
|
|
|
|
|
|
для: neadekvat
(31.01.2010 в 12:56)
| | >Пойду манул читать :-[
Вот это нужно было делать сразу после слова "нельзя". | |
|
|
|
|
|
|
|
для: Trianon
(31.01.2010 в 13:01)
| | Ну, на странице мануала по функции date бывал частенько, потому туда уже не спешил.
Оно теперь и ясно - не дочитал. | |
|
|
|