Tipo, recebo via formulario a data e horario nesse formato:
01/30/2006 04:20 PM
ou
01/30/2006 04:20 AM
antes de gravar queria mudar esse formato de AM PM para o 24h, tipo 04:20 PM ficaria 16:20 e o AM continuaria 04:20.
alguem tem ideia como faco essa troca?
no mysql tem como registrar usando AM PM?

Mudar Formato Do Horario Antes De Gravar
Started By cocacola, 27/05/2006, 17:09
3 replies to this topic
#1
Posted 27/05/2006, 17:09
#2
Posted 27/05/2006, 17:11
Vc tem esse script ai da hora??
dbl - Um só Deus é pai de todos, o qual é sobre todos e em todos. (Efésios - 4.6)

#3
Posted 27/05/2006, 18:33
Depende de como você recebe esse valor .. o usuário digita ou você usa alguma função do php pra gerar ??
E sobre gravar no mysql acho que não tem problema, desde que seja um campo char ou varchar ...
E sobre gravar no mysql acho que não tem problema, desde que seja um campo char ou varchar ...

WebFórum - Equipe de Desenvolvimento - Monitor

Yeah I do have some stories, and it's true I want all the glory ...

Yeah I do have some stories, and it's true I want all the glory ...
#4
Posted 28/05/2006, 11:04
Se você precisa informar a data e hora da execução de um processo qualquer você pode fazer assim:
Seria importante armazenar o valor em um campo do tipo DATETIME para poder ordenar caso necessite
Outra coisa importante mesmo guardando a data em fomato YYYY-MM-DD você pode resgata-la da forma que quiser melhorando o desenpenho de resposta do MySQL uma vez que o VARCHAR ocupa mais espaço no banco que um DATETIME
Retornar a data YYYY-MM-DD em formato DD/MM/YYYY
[/ode]<?PHP
$sql = mysql_query("SELECT DATE_FORMAT(data, '%d/%m/%Y %H:%i') as dia FROM minhaTabela")or die(mysql_error());
//NOTE QUE data É O NOME DO CAMPO ONDE ESTÁ ARMAZENADO A DATA EM TIMESTAMP
//A INSTRUÇÃO as dia DIZ QUE O CAMPO data PASSA A TER O NOME DE dia E PODE SER IMPRESSO ASSIM echo $r['dia']
?>
[/code]
Para o caso de você quiser informar se foi AM ou PM segue a mesma regra que você utiliza para verificar isso "humanamente", Se o valor da hora for maior que 12 então é PM
moleza né?!!
então vamos para o "código":
Se alguma coisa ficou confuso avisa ai que a galera corrige
Falopa!
<?PHP echo date("Y-m-d H:m:s A"); //A SAIDA DESTE SCRIPT VAI SER ALGO COMO "2006-05-28 10:05:11 AM" POREM NÃO DA PRA GUARDAR NUM CAMPO DO TIPO DATETIME echo date("Y-m-d H:m:s"); //A SAIDA DESTE SCRIPT VAI SER ALGO COMO "2006-05-28 10:05:11" E ASSIM PODEMOS ARMAZENAR NUM CAMPO DO TIPO DATETIME ?>
Seria importante armazenar o valor em um campo do tipo DATETIME para poder ordenar caso necessite
Outra coisa importante mesmo guardando a data em fomato YYYY-MM-DD você pode resgata-la da forma que quiser melhorando o desenpenho de resposta do MySQL uma vez que o VARCHAR ocupa mais espaço no banco que um DATETIME
Retornar a data YYYY-MM-DD em formato DD/MM/YYYY
[/ode]<?PHP
$sql = mysql_query("SELECT DATE_FORMAT(data, '%d/%m/%Y %H:%i') as dia FROM minhaTabela")or die(mysql_error());
//NOTE QUE data É O NOME DO CAMPO ONDE ESTÁ ARMAZENADO A DATA EM TIMESTAMP
//A INSTRUÇÃO as dia DIZ QUE O CAMPO data PASSA A TER O NOME DE dia E PODE SER IMPRESSO ASSIM echo $r['dia']
?>
[/code]
Para o caso de você quiser informar se foi AM ou PM segue a mesma regra que você utiliza para verificar isso "humanamente", Se o valor da hora for maior que 12 então é PM

então vamos para o "código":
<?PHP $horaTotal = explode(" ", $r['dia']);//SEPARAMOS O VALOR DA HORA E DO DIA FICANDO ALGO COMO "10:15" $Somentehora = explode(":", $horaTotal);//SEPARAMOS O VALOR DA HORA DOS MINUTOS FICANDO COMO "10" if($Somentehora[0] >= 12){//COMPARAMOS SE O VALOR É MAIOR QUE 12 $horario = "PM";//SE SIM, PM }else{ $horario = "AM";//SE NÃO, AM } echo $r['dia'] . $horario;//IMPRIMIMOS O RESULTADO :D ?>
Se alguma coisa ficou confuso avisa ai que a galera corrige
Falopa!
1 user(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)