Секунды во время

OFF-NO

Новичок
Секунды во время

Здравствуйте!
Поделитесь функцией которая понимает сколько H:i:s в 120 секундах.
Вот пример:

указываю 120 секунд
получаю ответ:
00:02:00

Заранее спасибо!!!
 

OFF-NO

Новичок
нет, с этой функцией я уже пробывал.
<?php
$par="120";
echo date ("H:i:s",$par);
?>
выдает результат
03:02:00 - что не правильно, должен быть результат 00:02:00 =(
 

March

Новичок
Функция называется "Веселое деление", в третьем классе вроде походят.
 

Активист

Активист
Команда форума
OFF-NO
А может быть там просто Time Zone MSK ?

-~{}~ 21.04.09 07:49:

[m]date_default_timezone_set[/m]
 

Денч

Новичок
Я извращенец наверно... Вроде без опечаток :)
$time = floor($seconds/3600).":".sprintf("%02d", floor(($seconds - 3600*floor($seconds/3600))/60)).":".sprintf("%02d", $seconds - 60*floor(($seconds - 3600*floor($seconds/3600))/60) - 3600*floor($seconds/3600));

ЗЫ: Никому программист не нужен?
 

pilot911

Новичок
можно так

PHP:
	function time($value)	{
		$hh = floor($value/3600);
		$min = floor(($value-$hh*3600)/60);
		$sec = $value-$hh*3600-$min*60;
		$l = sprintf('%02d',$hh).':'.sprintf('%02d',$min).':'.sprintf('%02d',$sec);
		return $l;
	}

еще полезная функция


	/**
	 * Returns the "age" in minutes / hours / days / years of the number of $seconds inputted.
 	 *
	 * @param	integer		$seconds could be the difference of a certain timestamp and time()
	 * @param	string		$labels should be something like ' min| hrs| days| yrs'.  
	 * @return	string		Formatted time
	 */
	function calcAge($seconds,$labels = 'min|hrs|days|yrs')	{
		$labelArr = explode('|',$labels);
		$prefix='';
		if ($seconds<0)	{$prefix='-'; $seconds=abs($seconds);}
		if ($seconds<3600)	{
			$seconds = round ($seconds/60).' '.trim($labelArr[0]);
		} elseif ($seconds<24*3600)	{
			$seconds = round ($seconds/3600).' '.trim($labelArr[1]);
		} elseif ($seconds<365*24*3600)	{
			$seconds = round ($seconds/(24*3600)).' '.trim($labelArr[2]);
		} else {
			$seconds = round ($seconds/(365*24*3600)).' '.trim($labelArr[3]);
		}
		return $prefix.$seconds;
	}
 

dimagolov

Новичок
это что, весеннее обострение? каждый идиот лезет со своим переводом timestamp-а непонятно во что и непонятно зачем.

pilot911, даже дети начальной школы знают что в сутках не всегда 24 часа, а в году не всегда 365 дней, а вот тебе, убогому, это неизвестно.
 

zerkms

TDD infected
Команда форума
dimagolov
если разница дана в секундах, то в сутках всегда 24 часа. потому что это разница в секундах.
;-)
 

dimagolov

Новичок
zerkms, оперировать разницей timestamp-ов в отрыве от них самих, это в любом случае глупость
 

zerkms

TDD infected
Команда форума
dimagolov
ы? если дана разница - не всё ли равно как она была вычислена?
 

dimagolov

Новичок
ею можно оперировать только в терминах секунд-минут-часов, но не дней. летнее/зимнее время, это первый пример когда нельзя делать дальнейшую экстраполяцию в дни. из этого следует, что в разнице timestamp-ов нельзя хранить промежутки повторяющихся событий, если таковые должны происходить с кратностью в дни. даже если кратность событий несколько часов (пусть которым кратны 24, т.е. 1, 2, 3, 4, 6, 8, 12), то время события в сутках будет плавать из-за летнего-зимнего времени, а потом и вовсе собьется из-за добавочных секунд.
 

pilot911

Новичок
Автор оригинала: dimagolov
ею можно оперировать только в терминах секунд-минут-часов, но не дней. летнее/зимнее время, это первый пример когда нельзя делать дальнейшую экстраполяцию в дни. из этого следует, что в разнице timestamp-ов нельзя хранить промежутки повторяющихся событий, если таковые должны происходить с кратностью в дни. даже если кратность событий несколько часов (пусть которым кратны 24, т.е. 1, 2, 3, 4, 6, 8, 12), то время события в сутках будет плавать из-за летнего-зимнего времени, а потом и вовсе собьется из-за добавочных секунд.
когда понадобиться такая точность - тогда и поговорим, неубогий dimagolov
 

WIMM

Новичок
PHP:
$datetime = new DateTime(); 		
$datetime->setTime(0, 0, 120); 		
echo $datetime->format('H:i:s') . "\n";
 
Сверху