Variável javascript não recebendo o valor corretamente do input type=“date”
29/07/2021
0
Estou com o seguinte problema, tenho uma aplicação em PHP que tem um input type="date" e através do método POST o valor selecionado neste input é armazenado numa variável PHP. Porém, quando vou atribuir o valor da variável PHP numa variável Javascript estou tendo problemas.
Por exemplo
A variável Javascript "DataIniSel" em vez de armazenar '2021-07-29', está armazenando 1985, que é o resultado da subtração 2021 menos 07 menos 29.
Alguém pode me ajudar a fazer a variável Javascript receber corretamente o valor da variável PHP?
Desde já eu agradeço. Obrigado.
Por exemplo
<?php $DataIni = $_POST['DataIni']; // a variável $DataIni recebe o valor '2021-07-29' ?> <script> var DataIniSel = <?php echo $DataIni ?>; </script>
A variável Javascript "DataIniSel" em vez de armazenar '2021-07-29', está armazenando 1985, que é o resultado da subtração 2021 menos 07 menos 29.
Alguém pode me ajudar a fazer a variável Javascript receber corretamente o valor da variável PHP?
Desde já eu agradeço. Obrigado.
Carlos Massam
Curtir tópico
+ 0
Responder
Posts
01/08/2021
Yuri Aguiar
Então amigo... como o PHP corre do lado do servidor para criar a página, e o JS corre do lado do cliente com a página já criada. Se você está utilizando desta maneira, a único jeito deles "falarem" seria via ajax.
Agora, se estiver utilizando um framework você geralmente utiliza um template engine para trabalhar com variáveis no HTML, podendo também passar estas variáveis para o JS. pode ser que por conta do PHP receber o valor do date como '2021-07-29', ele não está interpretando como Date e sim como valores numéricos, já que o JS é uma linguagem de tipagem fraca. Você poderia tentar realizar um casting, mas entenda que no JavaScript não possui dados do tipo data.
Umas melhor maneira seria converter para tipo String e ver como ele se comporta.
Ps. não sei se essa seria a melhor abordagem.
Abraço.
Agora, se estiver utilizando um framework você geralmente utiliza um template engine para trabalhar com variáveis no HTML, podendo também passar estas variáveis para o JS. pode ser que por conta do PHP receber o valor do date como '2021-07-29', ele não está interpretando como Date e sim como valores numéricos, já que o JS é uma linguagem de tipagem fraca. Você poderia tentar realizar um casting, mas entenda que no JavaScript não possui dados do tipo data.
Umas melhor maneira seria converter para tipo String e ver como ele se comporta.
<script> var DataIniSel = String(<?php echo $DataIni ?>); </script>
Ps. não sei se essa seria a melhor abordagem.
Abraço.
Responder
Clique aqui para fazer login e interagir na Comunidade :)