Ir para conteúdo

POWERED BY:

Arquivado

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

adriano.eurich

Mascaras e conversão de data PHP mySql

Recommended Posts

Estou tendo dificuldade para entender como é feito o tratamento de mascaras e conversões de data, tenho a pagina cadastro.php onde tem os campos para digitar os dados um deles é a data de nascimento, onde coloquei as mascaras na pagina de script como mostra em anexo, dessa forma ele mostra certo os campos para o cliente digitar no formato 00/00/0000, porem quando envia ao banco ele aparece como mostra em anexo 0000-00-00, e na pagina consulta ele retorna o valor do banco dessa forma também. Gostaria que aparece a mascara na pagina consulta para o cliente digitar da forma certa 00/00/000 e enviasse ao bando sem as mascara se possível, mas que retornasse a pagina de consulta com as mascara certa no formato 00/00/000 

Obs. Sei que o banco aceita apenas 2019-04-25, qualquer valor inserido em outro formato ele vai entender como 0000-00-00, mas como faria para aparecer na pagina de cadastro.php a mascara 25/04/2019 fosse passado para o banco 2019-04-25 e retorna na consulta.php 25/04/2019.

 

Cadastro de Cliente

 

Pagina Cadastro de Cliente.php

<!-- Campo Data Nasc -->
<div class="input-field col s12">
   <i class="material-icons prefix">event_note</i>
   <input type="text" name="datanasc" id="datanasc" maxlength="10" required>
   <label for="datanasc"> DataNasc do Cliente</label>
</div>

--------------------------------------------------------------------------

Pagina create.php

<?php
session_start();
include_once 'conexao.php';

$nome       = filter_input(INPUT_POST, 'nome', FILTER_SANITIZE_SPECIAL_CHARS);
$email      = filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL);
$telefone   = filter_input(INPUT_POST, 'telefone', FILTER_SANITIZE_NUMBER_INT);
$cpf        = filter_input(INPUT_POST, 'cpf', FILTER_SANITIZE_NUMBER_INT);
$datanasc   = filter_input(INPUT_POST, 'datanasc', FILTER_VALIDATE_INT);

$querySelect = $link->query("select email from tb_clientes");
$array_emails = [];

while ($emails = $querySelect->fetch_assoc()):
    $emails_existentes = $emails['email'];
    array_push($array_emails, $emails_existentes);
endwhile;

if(in_array($email,$array_emails)):
    $_SESSION['msg'] = "<p class='center red-text'>".'Já existe um cliente cadastrado com esse email'."</p>";
    header("Location: ../CadCli.php");
else:
    $queryInsert = $link->query("insert into tb_clientes values(default,'$nome','$email','$telefone','$cpf','$datanasc')");
    $affected_rows = mysqli_affected_rows($link);
    
    if($affected_rows > 0):
        $_SESSION['msg'] = "<p class='center green-text'>".'Cadastro efetuado com Sucesso!'."<br>";
        header("Location: ../CadCli.php");
    endif;
endif;
-----------------------------------------------------------------------------------------------------
  

Pagina read.php

<?php

include_once 'conexao.php';

$querySelect  = $link->query("select * from tb_clientes");
while ($registros = $querySelect->fetch_assoc()):
    $id       = $registros['id'];
    $nome     = $registros['nome'];
    $email    = $registros['email'];
    $telefone = $registros['telefone'];
    $cpf      = $registros['cpf'];
    $datanasc = $registros['datanasc'];
    
    
    
    echo "<tr>";
    echo "<td>$nome</td><td>$email</td><td>$telefone</td><td>$cpf</td><td>$datanasc</td>";
    echo "<td><a href='editar.php?id=$id'><i class='material-icons'>edit</i></a></td>";
    echo "<td><a href='banco_de_dados/delCliConfirma.php?id=$id'><i class='material-icons'>delete</i></a></td>";
    echo "</tr>";
    
endwhile;
---------------------------------------------------------------------------------------------------------------------
Pagina de Script Jquery

<!-- Inicialização Jquery Mascaras -->
        <script type="text/javascript"> 
            jQuery.noConflict();
            jQuery(function($){
               $("#datanasc").mask("99/99/9999");
               $("#telefone").mask("(099)-99999-9999");
               $("#cpf").mask("999 999 999-99"); 
            });
        </script> 

 

Capturar.PNG

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Adriano, saudações...

 

Você pode fazer a Máscara para data e hora da seguinte forma:

 

Para Campos Separados - Data e Hora

    $dtafim = date(('d/m/Y'), strtotime($r->datafim));
    $hrsfim = date(('H:i:s'), strtotime($r->horafim)); 

 

ou 

 

Para Campos DateTime

    $dtaHrs = date(('d/m/Y - H:i:s'), strtotime($r->dataHora));

 

 

Espero ter ajudado,

 

Cesar

Compartilhar este post


Link para o post
Compartilhar em outros sites
11 horas atrás, violin101 disse:

Olá Adriano, saudações...

 

Você pode fazer a Máscara para data e hora da seguinte forma:

 

Para Campos Separados - Data e Hora

    $dtafim = date(('d/m/Y'), strtotime($r->datafim));
    $hrsfim = date(('H:i:s'), strtotime($r->horafim)); 

 

ou 

 

Para Campos DateTime

    $dtaHrs = date(('d/m/Y - H:i:s'), strtotime($r->dataHora));

 

 

Espero ter ajudado,

 

Cesar

11 horas atrás, violin101 disse:

Olá Adriano, saudações...

 

Você pode fazer a Máscara para data e hora da seguinte forma:

 

Para Campos Separados - Data e Hora

    $dtafim = date(('d/m/Y'), strtotime($r->datafim));
    $hrsfim = date(('H:i:s'), strtotime($r->horafim)); 

 

ou 

 

Para Campos DateTime

    $dtaHrs = date(('d/m/Y - H:i:s'), strtotime($r->dataHora));

 

 

Espero ter ajudado,

 

Cesar

Em 25/04/2019 at 11:39, adriano.eurich disse:

Estou tendo dificuldade para entender como é feito o tratamento de mascaras e conversões de data, tenho a pagina cadastro.php onde tem os campos para digitar os dados um deles é a data de nascimento, onde coloquei as mascaras na pagina de script como mostra em anexo, dessa forma ele mostra certo os campos para o cliente digitar no formato 00/00/0000, porem quando envia ao banco ele aparece como mostra em anexo 0000-00-00, e na pagina consulta ele retorna o valor do banco dessa forma também. Gostaria que aparece a mascara na pagina consulta para o cliente digitar da forma certa 00/00/000 e enviasse ao bando sem as mascara se possível, mas que retornasse a pagina de consulta com as mascara certa no formato 00/00/000 

 

Cadastro de Cliente

 


Pagina Cadastro de Cliente.php

<!-- Campo Data Nasc -->
<div class="input-field col s12">
   <i class="material-icons prefix">event_note</i>
   <input type="text" name="datanasc" id="datanasc" maxlength="10" required>
   <label for="datanasc"> DataNasc do Cliente</label>
</div>

--------------------------------------------------------------------------

Pagina create.php

<?php
session_start();
include_once 'conexao.php';

$nome       = filter_input(INPUT_POST, 'nome', FILTER_SANITIZE_SPECIAL_CHARS);
$email      = filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL);
$telefone   = filter_input(INPUT_POST, 'telefone', FILTER_SANITIZE_NUMBER_INT);
$cpf        = filter_input(INPUT_POST, 'cpf', FILTER_SANITIZE_NUMBER_INT);
$datanasc   = filter_input(INPUT_POST, 'datanasc', FILTER_VALIDATE_INT);

$querySelect = $link->query("select email from tb_clientes");
$array_emails = [];

while ($emails = $querySelect->fetch_assoc()):
    $emails_existentes = $emails['email'];
    array_push($array_emails, $emails_existentes);
endwhile;

if(in_array($email,$array_emails)):
    $_SESSION['msg'] = "<p class='center red-text'>".'Já existe um cliente cadastrado com esse email'."</p>";
    header("Location: ../CadCli.php");
else:
    $queryInsert = $link->query("insert into tb_clientes values(default,'$nome','$email','$telefone','$cpf','$datanasc')");
    $affected_rows = mysqli_affected_rows($link);
    
    if($affected_rows > 0):
        $_SESSION['msg'] = "<p class='center green-text'>".'Cadastro efetuado com Sucesso!'."<br>";
        header("Location: ../CadCli.php");
    endif;
endif;
-----------------------------------------------------------------------------------------------------
  

Pagina read.php

<?php

include_once 'conexao.php';

$querySelect  = $link->query("select * from tb_clientes");
while ($registros = $querySelect->fetch_assoc()):
    $id       = $registros['id'];
    $nome     = $registros['nome'];
    $email    = $registros['email'];
    $telefone = $registros['telefone'];
    $cpf      = $registros['cpf'];
    $datanasc = $registros['datanasc'];
    
    
    
    echo "<tr>";
    echo "<td>$nome</td><td>$email</td><td>$telefone</td><td>$cpf</td><td>$datanasc</td>";
    echo "<td><a href='editar.php?id=$id'><i class='material-icons'>edit</i></a></td>";
    echo "<td><a href='banco_de_dados/delCliConfirma.php?id=$id'><i class='material-icons'>delete</i></a></td>";
    echo "</tr>";
    
endwhile;
---------------------------------------------------------------------------------------------------------------------
Pagina de Script Jquery

<!-- Inicialização Jquery Mascaras -->
        <script type="text/javascript"> 
            jQuery.noConflict();
            jQuery(function($){
               $("#datanasc").mask("99/99/9999");
               $("#telefone").mask("(099)-99999-9999");
               $("#cpf").mask("999 999 999-99"); 
            });
        </script> 

 

Capturar.PNG

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá violin101, obrigado pelo retorno, então eu estou meio confuso, essa dica que você me passou seria para usar no lugar do Jquery como eu fiz ali?

 

Por que eu precisava que na pagina aparecesse para a pessoa digitar no formato 00/00/000, usei aquela jquery e ficou dessa forma, mas quando clica pra enviar para o banco ele passa tudo zerado 0000-00-00, acho que tenho que mudar algo na pagina create.php que receba a data com mascara 00/00/000 e converta para 0000-00-00 antes de enviar para o banco ai o outro problema seria quando eu entrasse na pagina consulta.php ela teria que me mostrar a data no formato 00/00/0000.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Adriano, saudações...

 

Você pode utilizar desta forma:

 

while ($registros = $querySelect->fetch_assoc()):  

 

$dtafim = date(('d/m/Y'), strtotime($registros['datanasc']));

 

$id = $registros['id']; $nome = $registros['nome'];

$email = $registros['email'];

$telefone = $registros['telefone'];

$cpf = $registros['cpf'];

 

 

echo "<tr>";

    echo "<td>$nome</td><td>$email</td><td>$telefone</td><td>$cpf</td><td>$dtafim</td>";

    echo "<td><a href='editar.php?id=$id'><i class='material-icons'>edit</i></a></td>";

   echo "<td><a href='banco_de_dados/delCliConfirma.php?id=$id'><i class='material-icons'>delete</i></a></td>";

echo "</tr>";

 

endwhile;

 

 

Espero ter ajudado

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por violin101
      Caros amigos, saudações.

      Estou com uma dúvida, referente cálculo de valores em tempo real.

      Tenho uma rotina, que faz o cálculo, o problema é mostrar o resultado.

      Quero mostrar o RESULTADO assim: 0,00  ou  0.00

      Abaixo posto o código.
      jQuery('input').on('keyup',function(){ //Remover ponto e trocar a virgula por ponto var m = document.getElementById("pgRest").value; while (m.indexOf(".") >= 0) { m = m.replace(".", ""); } m = m.replace(",","."); //Remover ponto e trocar a virgula por ponto var j = document.getElementById("pgDsct").value; while (j.indexOf(".") >= 0) { j = j.replace(".", ""); } j = j.replace(",","."); m = parseFloat(jQuery('#pgRest').val() != '' ? jQuery('#pgRest').val() : 0); j = parseFloat(jQuery('#pgDsct').val() != '' ? jQuery('#pgDsct').val() : 0); //Mostra o Resultado em Tempo Real jQuery('#pgTroco').val(m - j); <<=== aqui estou errando })  
       
      Grato,
       
      Cesar
       
       
    • Por violin101
      Caro amigos, saudações.

      Tenho uma tabela escrita em JS que funciona corretamente.
       
      Minha dúvida:
      - como devo fazer para quando a Tabela HTML estiver vazia, exibir o LOGO da Empresa ?

      Abaixo posto o script:
      document.addEventListener( 'keydown', evt => { if (!evt.ctrlKey || evt.key !== 'i' ) return;// Não é Ctrl+A, portanto interrompemos o script evt.preventDefault(); //Chama a Função Calcular Qtde X Valor Venda calcvda(); var idProdutos = document.getElementById("idProdutos").value; var descricao = document.getElementById("descricao").value; var prd_unid = document.getElementById("prd_unid").value; var estoque_atual = document.getElementById("estoque_atual").value; var qtde = document.getElementById("qtde").value; var vlrunit = document.getElementById("vlrunit").value; var vlrtotals = document.getElementById("vlrtotal").value; var vlrtotal = vlrtotals.toLocaleString('pt-br', {minimumFractionDigits: 2}); if(validarConsumo(estoque_atual)){ //Chama a Modal com Alerta. $("#modal_qtdemaior").modal(); } else { if(qtde == "" || vlrunit == "" || vlrtotal == ""){ //Chama a Modal com Alerta. $("#modal_quantidade").modal(); } else { //Monta a Tabela com os Itens html = "<tr style='font-size:13px;'>"; html += "<td width='10%' height='10' style='text-align:center;'>"+ "<input type='hidden' name='id_prds[]' value='"+idProdutos+"'>"+idProdutos+"</td>"; html += "<td width='47%' height='10'>"+ "<input type='hidden' name='descricao[]' value='"+descricao+"'>"+descricao+ "<input type='hidden' name='esp[]' value='"+prd_unid+"'> - ESP:"+prd_unid+ "<input type='hidden' name='estoq[]' value='"+estoque_atual+"'></td>"; html += "<td width='10%' height='10' style='text-align:center;'>"+ "<input type='hidden' name='qtde[]' value='"+qtde+"'>"+qtde+"</td>"; html += "<td width='12%' height='10' style='text-align:right;'>"+ "<input type='hidden' name='vlrunit[]' value='"+vlrunit+"'>"+vlrunit+"</td>"; html += "<td width='14%' height='10' style='text-align:right;'>"+ "<input type='hidden' name='vlrtotal[]' value='"+vlrtotal+"'>"+vlrtotal+"</td>"; html += "<td width='12%' height='10' style='text-align:center;'>"+ "<button type='button' class='btn btn-uvas btn-remove-produto' style='margin-right:1%; padding:1px 3px; font-size:12px;' title='Remover Item da Lista'>"+ "<span class='fa fa-minus' style='font-size:12px;'></span></button></td>"; html += "</tr>"; $("#tbventas tbody").append(html); //Função para Somar os Itens do Lançamento somar(); $("#idProdutos").val(null); $("#descricao").val(null); $("#prd_unid").val(null); $("#qtde").val(null); $("#vlrunit").val(null); $("#vlrtotal").val(null); $("#idProdutos").focus(); //Se INCLUIR NOVO produto - Limpa a Forma de Pagamento $("#pgSoma").val(null); $("#pgRest").val(null); $("#pgDsct").val(null); $("#pgTroco").val(null); $("#tbpagar tbody").empty(); }//Fim do IF-qtde }//Fim do Validar Consumo });//Fim da Função btn-agregar  
      Grato,

      Cesar
       
    • Por violin101
      Caros amigos, saudações.
       
      Por favor, poderiam me ajudar.

      Estou com a seguinte dúvida:
      --> como faço para para implementar o input código do produto, para quando o usuário digitar o ID o sistema espera de 1s a 2s, sem ter que pressionar a tecla ENTER.

      exemplo:
      código   ----   descrição
           1       -----   produto_A
       
      Grato,
       
      Cesar
    • Por violin101
      Caros amigos, saudações.
       
      Humildemente peço desculpa por postar uma dúvida que tenho.

      Preciso salvar no MySql, os seguinte Registro:

      1 - Principal
      ====> minha dúvida começa aqui
      ==========> como faço para o Sistema Contar Automaticamente o que estiver despois do 1.____?
      1.01 - Matriz
      1.01.0001 - Estoque
      1.01.0002 - Oficina
      etc

      2 - Secundário
      2.01 - Loja_1
      2.01.0001 - Caixa
      2.01.0002 - Recepção
      etc
       
      Resumindo seria como se fosse um Cadastro de PLANO de CONTAS CONTÁBEIL.

      Grato,


      Cesar









       
    • Por violin101
      Caros amigos, saudações.

      Por favor, me perdoa em recorrer a orientação dos amigos.

      Preciso fazer um Relatório onde o usuário pode Gerar uma Lista com prazo para vencimento de: 15 / 20/ 30 dias da data atual.

      Tem como montar uma SQL para o sistema fazer uma busca no MySql por período ou dias próximo ao vencimento ?

      Tentei fazer assim, mas o SQL me traz tudo:
      $query = "SELECT faturamento.*, DATE_ADD(faturamento.dataVencimento, INTERVAL 30 DAY), fornecedor.* FROM faturamento INNER JOIN fornecedor ON fornecedor.idfornecedor = faturamento.id_fornecedor WHERE faturamento.statusFatur = 1 ORDER BY faturamento.idFaturamento $ordenar ";  
      Grato,
       
      Cesar
       
       
       
       
×

Informação importante

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