Função para converter de timestamp para hora

Posted on Posted in Back-end, Dicas, Php

Toggl: Função para converter de timestamp para hora

No ultimo post que você aprendeu a pegar os dados do toogl a partir da API. Com isso você pode montar uma rotina para importar para dentro do seu sistema, com isso surge uma questão.
Desenvolvendo a função

O toggl salva as horas no formato timestamp, então resolvi criar uma pequena função para converter esse valor, vamos ao código.

function convertTogglTime($time, $return = 'all')
{
	$second = ($time % (1000*60*60)) % (1000*60) / 1000;
	if(strlen($second)>2){ $second = substr($second, 0, 2); }

	$second = str_pad($second, 2, "0", STR_PAD_LEFT);

	$minute = ($time % (1000*60*60)) / (1000*60);
	if(strpos($minute, '.')){
		$_m = explode('.', $minute);

		$minute = str_pad($_m[0], 2, "0", STR_PAD_LEFT);
	}else{
		if(strlen($minute)>2){
			$minute = str_pad(substr($minute,0,2), 2, "0", STR_PAD_LEFT);
		}else{
			$minute = str_pad($minute, 2, "0", STR_PAD_LEFT);
		}
	}

	$hour = ($time / (1000*60*60));
	if(strpos($hour, '.')){
		$_h = explode('.', $hour);

		$hour = $_h[0];
	}else{
		$hour = $hour;
	}

	if($return=='hour'){
		return $hour;
	}elseif ($return=='minute'){
		return $minute;
	}else{
		return $hour.':'.$minute.':'.$second;
	}
}

Nessa função fui um pouco alem, eu posso retornar apenas a hora ou minuto, ou a hora inteira, mandando o parametro $return como hour, minute respectivamente. Volto em breve com mais artigos, até mais.