Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: time() -> чч.мм
 
 автор: а-я   (31.01.2010 в 11:38)   письмо автору
 
 

в общем нужно узнать сколько прошло часов и минут, имея секунды. например 8605 сек.

видел тут красивый вывод в одну строку, но что-то найти не могу.. вроде через sprintf() делали.

  Ответить  
 
 автор: neadekvat   (31.01.2010 в 12:24)   письмо автору
 
   для: а-я   (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);
}

Учитывается, что может пройти больше суток, хотя грубовато..да и "часов, дней" не склоняются

  Ответить  
 
 автор: Trianon   (31.01.2010 в 12:41)   письмо автору
 
   для: neadekvat   (31.01.2010 в 12:24)
 

нельзя.

  Ответить  
 
 автор: neadekvat   (31.01.2010 в 12:48)   письмо автору
 
   для: Trianon   (31.01.2010 в 12:41)
 

А подробнее?

  Ответить  
 
 автор: GeorgeIV   (31.01.2010 в 12:52)   письмо автору
 
   для: neadekvat   (31.01.2010 в 12:48)
 

date() из таймштамапа форматирует дату, у вас если старт совпадет с текущим временем всегда будет 1 января 1970 года

  Ответить  
 
 автор: neadekvat   (31.01.2010 в 12:54)   письмо автору
 
   для: GeorgeIV   (31.01.2010 в 12:52)
 

а дальше? 0 часов и ноль минут, что вполне нормально. Хотя через попу.
Какой вариант будет лучше?

  Ответить  
 
 автор: GeorgeIV   (31.01.2010 в 12:56)   письмо автору
 
   для: neadekvat   (31.01.2010 в 12:54)
 

вам уже посоветовали, запустить и проверить.... попа сама проявится

  Ответить  
 
 автор: Trianon   (31.01.2010 в 12:54)   письмо автору
 
   для: neadekvat   (31.01.2010 в 12:48)
 

А подробнее - я устал. Я опровергал этот метод здесь с десяток раз, хотя если человек живет далеко от Лондона либо пишет летом, никакие опровержения не нужны - достаточно просто запустить скрипт.
Но все равно появляются деятели вроде Вас, которым правила применения функций не писаны.


Поэтому подробнее сейчас будете рассказывать Вы.
Почему не прочли мануал, почему не проверили скрипт перед отправкой, и почему он работает именно так, как работает, а не так, как ожидает пользователь.

  Ответить  
 
 автор: neadekvat   (31.01.2010 в 12:56)   письмо автору
 
   для: Trianon   (31.01.2010 в 12:54)
 

Значит, дело во временных поясах..да, не подумавши об этом.
Еще чуть-чуть и мне станет стыдно.
Пойду манул читать :-[

  Ответить  
 
 автор: Trianon   (31.01.2010 в 12:59)   письмо автору
 
   для: neadekvat   (31.01.2010 в 12:56)
 

дело не столько в временных поясах, сколько в физике процесса.
Если абсолютный момент времени, а есть интервал времени.
Функция, которая годится для отображения первого, не подходит для отображения второго.
И наоборот.

  Ответить  
 
 автор: neadekvat   (31.01.2010 в 13:08)   письмо автору
 
   для: Trianon   (31.01.2010 в 12:59)
 

Да, функция там несколько больше, чем просто date и time.
Как бы вы решили задачу автора?

  Ответить  
 
 автор: Trianon   (31.01.2010 в 13:37)   письмо автору
 
   для: neadekvat   (31.01.2010 в 13:08)
 

<? $seconds 8605;
echo 
sprintf("%d:%02d", (int)($seconds/3600), ((int)($seconds/60))%60);

  Ответить  
 
 автор: а-я   (31.01.2010 в 15:22)   письмо автору
 
   для: Trianon   (31.01.2010 в 13:37)
 

Благодарю.. =)

  Ответить  
 
 автор: Trianon   (31.01.2010 в 13:01)   письмо автору
 
   для: neadekvat   (31.01.2010 в 12:56)
 

>Пойду манул читать :-[

Вот это нужно было делать сразу после слова "нельзя".

  Ответить  
 
 автор: neadekvat   (31.01.2010 в 13:04)   письмо автору
 
   для: Trianon   (31.01.2010 в 13:01)
 

Ну, на странице мануала по функции date бывал частенько, потому туда уже не спешил.
Оно теперь и ясно - не дочитал.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования