Jump to content
JenneferBarbosa

[Resolvido] Validação de datas

Recommended Posts

<label>Data Inicio</label>
  <input type="date" name="data_inicio-incluir" id="data_inicio-incluir"> 
<label>Data Fim</label>
   <input type="date" name="data_fim-incluir" id="data_fim-incluir">

Boa tarde pessoal, estou iniciando em JS e não sei como fazer a validação de datas. Estou fazendo um sistema de aluguel de livros, então,  como consigo verificar se a data_fim não é menor que a data inicio e que a data_fim seja de 1 até 7 dias depois da data_inicio, não podendo ultrapassar. Se alguém tiver como me ajudar, ficarei muito grata.  

Share this post


Link to post
Share on other sites

@JenneferBarbosa Boa tarde!

 

Para fazer a validação da data usando javascript recomendo o uso do object Date do javascript, você pode cria um object Date e depois fazer a manipulação da data com os métodos do próprio objeto.

 

Você pode criar uma data usando os valores inseridos no input type data, assim você consegue fazer uma adição de dias sem problema usando os método do objeto Date.

 

Aqui tem um Ótimo tutorial de como usar o objeto Date do javascript:

https://www.w3schools.com/js/js_dates.asp

 

Vou deixa um código de exemplo de como eu utilizei o objeto data para fazer a verificação solicitadas.

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>Verificar a data</title>
    </head>
    <body>
        <p id="msg"></p>
        <label>Data de retirada:</label><br>
        <input type="date" id="data_inicio-incluir"><br><br> 
        <label>Data de entrega:</label><br>
        <input type="date" id="data_fim-incluir"><br><br>
        <button onclick="verificarData()">Verificar</button>
        <script>

            var dataInicio, dataFinal, msg;

            window.onload = function(){
                dataInicio = document.getElementById("data_inicio-incluir");
                dataFinal = document.getElementById("data_fim-incluir");
                msg = document.getElementById("msg");
            };

            function verificarData()
            {
                let dataI, dataF;

                dataI = dataInicio.value;
                dataF = dataFinal.value;

                dataI = dataI.replace(/[^0-9-]/g, "").trim(); // Filtrando o valor do input
                dataF = dataF.replace(/[^0-9-]/g, "").trim(); // Filtrando o valor do input

                if (dataI == "" && dataI.length != 10)
                {
                    msg.innerHTML = ("A data de retirada é invalida.");
                    return false;
                }

                if (dataF == "" && dataF.length != 10)
                {
                    msg.innerHTML = ("A data de entrega é invalida.");
                    return false;
                }

                if (dataI != "" || dataF != "" || dataI.length == 10 || dataF.length == 10)
                {
                    dataI = new Date(dataI);
                    dataF = new Date(dataF);

                    if (dataF <= dataI)
                    {
                        msg.innerHTML = ("A data entrega não pode ser menor ou igual a data da retirada.");
                        return false;
                    }

                    dataI.setDate(dataI.getDate() + 7);

                    if (dataF > dataI)
                    {
                        msg.innerHTML = ("A data de entrega não pode ser maior que 7 dias da data da retirada.");
                        return false;
                    }

                    msg.innerHTML = ("Ok");
                    return true;
                }

            }

        </script>
    </body>
</html>

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By drx
      Olá feras!
       
      Estou recebendo este retorno da conexão: SQLSTATE[HY000] [1049] Base 'dbbase' inconnue
       
      O que é que pode ser?
       
      Tudo certinho. Fala que a dbbase não existe, mas existe.
      Alguém tem uma solução ?
       
      Desde já agradeço.
    • By helkton
      ola galera, dúvida besta, mais ja estou quebrando a cabeça,
      seguinte estou preso  num select <option> vindo do banco de dados
      fiz alguns com o if(){}
      mais é pra saber tipoImovel - interesseImovel ou finalidadeImovel
      esses ai são poucos, ficou dboas fazer um if(){} pra cada. Agora pensa comigo...
      Tenho uma TABELA clientes, guardo as informações dos clientes
      Tenho outra tabela imoveis, com os dados do imóvel e tbm com o cliente que cadastrou o imovel,
      na pagina pra editar-imovel.php, monto o <option> pra consultar na tabela clientes todos os clientes cadastrados, como deixo "selected" no nome do cliente que cadastrou o imóvel??
    • By eduardaarosaa
      Ola!! Estou tentando fazer o upload de múltiplos arquivos usando o laravel. Mas  estou tendo o seguinte erro ao tentar cadastrar: 
      "Call to undefined method Symfony\Component\HttpFoundation\FileBag::extension()"  
      Meu controller:
        public function cadastro_info(Request $request)
          {
              $dataForm = $request->except('_token');
              $nameFile = null;
              $loop = count($request->files);
              for ($i=0; $i< $loop; $i++) {
             
                  $name = uniqid(date('HisYmd'));
                  $extension = $request->files->extension();
                  $nameFile = "{$name}.{$extension}";

                  $upload = $request->files->storeAs('upload', $nameFile);
                }
                  if (!$upload)
                      return redirect()
                          ->back()
                          ->with('error', 'Falha ao fazer upload')
                          ->withInput();
              }
      Minha rota:
       Route::post('/cadastro_empresa', 'Site\SiteController@cadastro_info')->name('cadastro_info');
       
      O que estou carregando no controller:
      use Illuminate\Http\Request;
      use DB;
      use App\Http\Controllers\Controller;
      use App\Models\Site\cadastro;
       
      Gerei o link para o storage já 
       
      Alguém sabe dizer o motivo do erro?
       
      Obrigada!!!
       
       
    • By stefany nogueira
      Não estou esta trazendo a tabela e aparece o seguinte erro:

              
      ( ! ) Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in C:\wamp64\www\busca\index.php on line 20
      Call Stack
      #TimeMemoryFunctionLocation
      10.0009402840{main}(  )...\index.php:0
      20.0032418656mysqli_fetch_assoc
      (  )...\index.php:20
                    
       
       
      <?php
          include "conexao.php"
      ?>
          <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
      <html xmlns="http://www.w3.org/1999/xhtml1" lang="pt-br" xml:lang="pt-br">
          <head>
              <meta charset="utf-8">
              <title> Busca </title>
          </head>
          <body>
          <form action="results" method="post">
          <select name = convênios>
              <option>Selecione o convênio</option>
              <?php
                  $convenios = "SELECT * FROM convênios";
                  $qrconvenio = mysqli_query($conexao, $convenios);
                  while ($row_convenios = mysqli_fetch_assoc($qrconvenio)) ?>
                      <option value="<?php echo($row_convenios ['id_convenios'])?>"><?php echo($row_convenios ['convenio']) ?></option>
              ?>            
          </select>
      </body>
    • By violin101
      Caros amigos, saudações...
       
      Peço desculpa se estou postando minha dúvida na opção errada.
       
      Estou com um problema que não consigo entender, antes de usar o Codeigniter, tenho um Sistema em PHP onde conseguia visualizar todos os arquivos .PDF que fosse gravado no Mysql, conforme código fonte abaixo:
      <?php //Conexão com o Banco de Dados include"../Connections/config.php"; //Variáveis Passada por Método POST $idDoclieGet = isset($_GET['idDoclie']) ? $_GET['idDoclie'] : false; $idDoclie = isset($_POST['idDoclie']) ? $_POST['idDoclie'] : $idDoclieGet; //Executa a busca no Mysql $sql_pegaDocto = "SELECT * FROM docCliente WHERE idDoclie = :idDoclie"; try{ $query_pegaDoctos = $conecta->prepare($sql_pegaDocto); $query_pegaDoctos->bindValue(':idDoclie',$idDoclie,PDO::PARAM_STR); $query_pegaDoctos->execute(); $res_queryPegaDocto = $query_pegaDoctos->fetchAll(PDO::FETCH_ASSOC); }catch(PDOexcetpion $error_clientes){ echo 'Erro ao seleciona os clientes!'; } foreach($res_queryPegaDocto as $resDocto){ $idDoclie = $resDocto['idDoclie']; $nomeDoclie = $resDocto['nomeDoclie']; $pastaDoclie = $resDocto['pastaDoclie']; $validaDoclie = $resDocto['validaDoclie']; //Visualizar documento na tela header('Content-type: application/pdf'); header('Content-Disposition: inline; filename="'.$pastaDoclie.'"'); header('Content-Transfer-Encoding; binary'); header('Accept-Ranges; bytes'); readfile('admin-cliente/docClie/'.$resDocto['pastaDoclie']); } ?>  
      Infelizmente no Codeigniter não consigo adaptar esse código acima para poder visualizar os arquivos .PDF.
       
      Alguns dos amigos, teria algum exemplo em Codeiginter para que possa entender como visualizar os arquivos ?
       
      Grato,
       
      Cesar
       
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.