Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Dyegod3

[Resolvido] separando string

Recommended Posts

Olá pessoal

 

gostaria de saber como posso fazer para desmembrar uma string, na verdade acredito que seja isso q preciso para resolver o seguinte problema:

 

tenho um valor no banco, esse do tipo varchar, porém o valor é numérico e corresponde ao tempo do cronômetro no sistema.

 

gostaria de poder dividir esse valor da variável tempo em horas, minutos e segundos.

 

a minha variável tempo echo por exemplo: 1h 6min 41

 

teria q ser: hora = 1, minuto = 6, segundo = 41

 

agradeço toda ajuda pessoal :rolleyes:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ou melhor, usa um campo do tipo TIME

 

http://dev.mysql.com/doc/refman/5.0/en/dat...e-overview.html

 

Operações com strings envolvendo números são lentas.... o TIME sempre será mais eficiente. De qualquer forma, se você não puder alterar o tipo e quiser separar você pode fazer algo assim:

 

SELECT

SUBSTRING_INDEX(campo, 'h', 1) AS Horas,

SUBSTRING_INDEX(SUBSTRING_INDEX(campo, 'h', -1), 'min', 1) AS Minutos,

SUBSTRING_INDEX(campo, 'min', -1) AS Segundos,

FROM Tabela

 

http://dev.mysql.com/doc/refman/5.0/en/str...substring-index

Compartilhar este post


Link para o post
Compartilhar em outros sites

tá...

 

mais acho q tem como fazer desmembrando a string...

 

terei q mudar muito cod e para fazer dessa forma :(

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode quebrar a string via PHP com preg_split, facinho:

 

$hora_tosca = "1h 40min 50";
list($horas, $minutos, $segundos) = preg_split('#\D#', $hora_tosca, PREG_SPLIT_NO_EMPTY);

echo $horas."<br>";
echo $minutos."<br>";
echo $segundos."<br>";

Compartilhar este post


Link para o post
Compartilhar em outros sites

pow cara!

 

é exatamente isso q qro fazer!

 

mas oq esse PREG_SPLIT_NO_EMPTY faz~???

 

como faço para deixar somente os número sem: h / min

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aliás, errei uma coisinha no meu código, faz assim:

 

 

$hora_tosca = "1h 40min 50";
list($horas, $minutos, $segundos) = preg_split('#\D#', $hora_tosca, 0, PREG_SPLIT_NO_EMPTY);

echo $horas."<br>";
echo $minutos."<br>";
echo $segundos."<br>";

Coloquei um 0 antes do PREG_SPLIT_NO_EMPTY

 

Dá uma lida aqui pra entender:

 

http://br.php.net/preg_split

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.