Remazela 6 Denunciar post Postado Janeiro 20, 2017 Caros amigos Por favor, me perdoa por recorrer ajuda dos amigos novamente, com algo simples para alguns campo DateTime. Estou melhorando o meu sistema, para maior agilidade estou tentando utilizar o Campo DateTime. No input escrevi desta forma: <input type="datetime-local" name="dhl" value="<?php echo date("Y-m-d H:i:s",time()); ?>"/> o Resultado na tela mostra assim: dd/mm/aaaa --:-- . Até aí tudo bem. Só que quando quero alterar a Data para gravar no Banco MySql, a linha acima sempre pega a Data e Hora local. Como faço para manter a máscara, mas gravar a date desejada de escolha do usuário ? Grato, Renato Compartilhar este post Link para o post Compartilhar em outros sites
gabrieldarezzo 255 Denunciar post Postado Janeiro 20, 2017 Converte ué. Ex, um datetime normalmente é assim: 2015-03-02 10:37:45 Então se precisa converter antes de salvar. //2015-03-02 10:37:45 -> Repare tem um espaço entre a dt + hr list($data, $hora) = explode(' ', $_POST['dhl']); var_dump($data); // 2015-03-02 var_dump($hora); // 10:37:45 Outra opção: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-literals.html Compartilhar este post Link para o post Compartilhar em outros sites
gabrieldarezzo 255 Denunciar post Postado Janeiro 20, 2017 Li errado, escrevi errado haha.. Mask qnd você fala é algo estilo mascara mesmo no browser? http://digitalbush.com/projects/masked-input-plugin/#license https://github.com/RobinHerbots/Inputmask http://pt.stackoverflow.com/questions/51109/como-mascarar-um-input-no-html5 Compartilhar este post Link para o post Compartilhar em outros sites
Gabriel Heming 766 Denunciar post Postado Janeiro 20, 2017 @gabrieldarezzo Você usou explode? @Remazela verifique a configuração do servidor, se necessário, mantenha em ambos.Uma consideração, entretanto, não consigo testar no momento. Utilize a formatação DateTime::W3C. A W3C carrega consigo o fuso horário ("Y-m-d\TH:i:sP"). Compartilhar este post Link para o post Compartilhar em outros sites
Remazela 6 Denunciar post Postado Janeiro 20, 2017 Li errado, escrevi errado haha.. Mask qnd você fala é algo estilo mascara mesmo no browser? http://digitalbush.com/projects/masked-input-plugin/#license https://github.com/RobinHerbots/Inputmask http://pt.stackoverflow.com/questions/51109/como-mascarar-um-input-no-html5 Caro amigo Desculpa, mas ainda continuo com dúvida. Se utilizo esta linha de comando para gravar uma data inicial: <input type="datetime-local" name="dhl" value="<?php echo date("Y-m-d H:i:s",time()); ?>"/> e Pega sempre a Data e Hora local, independente de ser alterada ou não. Então a melhor opção neste caso não é usara o DateTime e sim apenas Date ? Observação: não entendi Grato, Renato Compartilhar este post Link para o post Compartilhar em outros sites
gabrieldarezzo 255 Denunciar post Postado Janeiro 20, 2017 @Gabriel Heming com list pode JSAHUSHASFoi uma opção que dei, utilizo ou o explode ou o STR_TO_DATE, a parte ruim é q se você trabalhar com 2 bancos Oracle x Mysql não fica portável a base. (TO_DATE no Oracle :()Já utilizando o Explode funciona tanto em um qnt no outro, valida com um checkdate e pau na maquina hahahaAlguma ideia/dica ?Ex com STR_TO_DATE: CREATE TABLE imaster_datetime; use imaster_datetime; CREATE TABLE tabela_com_datetime( data_hora datetime ); /* STR_TO_DATE(str,format) */ INSERT INTO tabela_com_datetime(data_hora) VALUES (STR_TO_DATE('06/10/1992', '%d/%m/%Y')); SELECT DATE_FORMAT(data_hora, '%d/%m/%Y') AS data_hora FROM tabela_com_datetime retorno: +------------+ | data_hora | +------------+ | 06/10/1992 | +------------+ 1 row in set (0.00 sec) Para utiliza Hora, min, sec: %h:%i:%s http://www.w3schools.com/sql/func_date_format.asp Compartilhar este post Link para o post Compartilhar em outros sites
Gabriel Heming 766 Denunciar post Postado Janeiro 20, 2017 @gabrieldarezzo echo \DateTime::createFromFormat('Y-m-d H:i:s' , '2015-03-02 10:37:45')->format(\DateTime::W3C); Ou o formato/saída que desejar. @Remazela Eu entendi o seu problema, você gostaria que a data viesse com a hora zerada, do tipo 2015-03-02 00:00:00. Esse é um problema que, sempre ao criar uma data, mesmo informando alguma, utiliza a hora atual. Se a hora não é necessária para ti, sugiro usar apenas Date. Caso queira utilizar a data completa, basta mudar a sua máscara: "Y-m-d 00:00:00" Compartilhar este post Link para o post Compartilhar em outros sites
gabrieldarezzo 255 Denunciar post Postado Janeiro 20, 2017 @Gabriel Heming DateTime() > 5.2.0 Trabalhei tanto tempo em serv que não tinha possibilidade de update, era um inferno que acabei me acostumando de tanto a usar o explode() ou funções nativas de DB e fazer malabarismos que a chego a me assustar qnd vejo coisas igual o seu exemplo de tão facilitado que está hehe. Vlw pelo exemplo, vou tentar me atualizar. @Remazela "Como faço para manter a máscara" Não entendi isso, qnd você fala mascara é para o usuario entrar com a data e ela ficar padronizadinha? "gravar a date desejada de escolha do usuário" Pra gravar veja o #5 Compartilhar este post Link para o post Compartilhar em outros sites
EdCesar 124 Denunciar post Postado Janeiro 20, 2017 Remazela, eu entendi que você pretende gravar a data no banco no formato dd/mm/aaaa ? Se sim, isso não é uma boa ideia, pois traria dificuldades depois para realizar consultas utilizando esse formato, o recomendado é manter no formato aaaa/mm/dd Compartilhar este post Link para o post Compartilhar em outros sites
Remazela 6 Denunciar post Postado Janeiro 21, 2017 Caros amigos Grato por sua ajuda e orientação. Atenciosamente, Renato Compartilhar este post Link para o post Compartilhar em outros sites