Jump to content
violin101

Codeigniter - chamar uma Função

Recommended Posts

Caros amigos.

 

saudações...

 

Por favor PRIMEIRAMENTE peço desculpa em recorrer ao auxílios dos amigos, mas sou novato em CODEIGNITER.

 

Através de muita Leitura e pesquisa sobre o tema, tenho conseguido desenvolver o que gostaria de executar.

 

Me deparei com o seguinte problema que não estou conseguindo executar com êxito.

 

Preciso criar uma FUNÇÃO onde o Sistema após o USUÁRIO efetuar o LOGIN possa realizar uma VALIDAÇÃO de Data e Hora.

Por exemplo:

 

Na base de dados tenho campos distintos como:

  `dataInicio` DATE NOT NULL ,
  `horaInicio` TIME NOT NULL ,
  `dataFim` DATE NOT NULL ,
  `horaFim` TIME NOT NULL ,

 

Pergunta:

como faço uma função para que o sistema possa comparar e calcular o PRAZO de VENCIMENTO com a DATA e HORA atual, ou seja:

prazo para encerrar

dataFim: 19/04/2019

horaFim: 12:00

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

vencimento

dataAtual: 19/04/2019

horaAtual: 12:01

==========================

 

Se a Data/Hora já venceu o Sistema muda o STATUS para 2 (prazo encerrado).

 

Grato,

 

Cesar

 

 

 

 

 

 

Share this post


Link to post
Share on other sites

Primeiramente, apague esse horaInicio horaFim e deixe só dataInicio dataFim e substitua na tabela o tipo dado que ela recebe de date por datetime, como abaixo:

 

BD

`dataInicio` datetime NOT NULL,
`dataFim` datetime NOT NULL,

 

Nessa parte agora, você receberá a data de vencimento do DB e compara com a data atual:

<?php
  $dataAtual = date('Y-m-d H:i:s'); // Recebe a data atual
  $dataFim = '2019-04-22 23:16:00'; // Recebe do banco de dados a data e hora de vencimento
  if(strtotime($dataAtual) > strtotime($dataFim)) echo 'Prazo esgotado'; // Compara das datas
  else echo 'Ainda da tempo, corre';
?>

 

Agora, verifique se seu servidor está com timezone local, caso não esteja, sugiro adicionar o trecho a seguir para pegar o horário local (dependo de sua cidade), ficando assim:

<?php
  setlocale(LC_ALL, 'pt_BR','ptb');
  date_default_timezone_set("America/Sao_Paulo"); // Define o fuso horário

  $dataAtual = date('Y-m-d H:i:s'); // Recebe a data atual
  $dataFim = '2019-04-22 23:16:00'; // Recebe do banco de dados a data e hora de vencimento
  if(strtotime($dataAtual) > strtotime($dataFim)) echo 'Prazo esgotado'; // Compara as datas
  else echo 'Ainda da tempo, corre';
?>

 

E aqui tem uma lista dos fuso horários aceitos,  caso seja de outro estado:

'AC' => 'America/Rio_branco',
'AL' => 'America/Maceio',
'AP' => 'America/Belem',
'AM' => 'America/Manaus',
'BA' => 'America/Bahia',
'CE' => 'America/Fortaleza',
'DF' => 'America/Sao_Paulo',
'ES' => 'America/Sao_Paulo',
'GO' => 'America/Sao_Paulo',
'MA' => 'America/Fortaleza',
'MT' => 'America/Cuiaba',
'MS' => 'America/Campo_Grande',
'MG' => 'America/Sao_Paulo',
'PR' => 'America/Sao_Paulo',
'PB' => 'America/Fortaleza',
'PA' => 'America/Belem',
'PE' => 'America/Recife',
'PI' => 'America/Fortaleza',
'RJ' => 'America/Sao_Paulo',
'RN' => 'America/Fortaleza',
'RS' => 'America/Sao_Paulo',
'RO' => 'America/Porto_Velho',
'RR' => 'America/Boa_Vista',
'SC' => 'America/Sao_Paulo',
'SE' => 'America/Maceio',
'SP' => 'America/Sao_Paulo',
'TO' => 'America/Araguaia', 

 

Espero ter ajudado!

Share this post


Link to post
Share on other sites

Amigo Felipe, saudações...

 

Grato por sua orientação e pela a tabela de fuso horário.

 

Infelizmente continuo ainda com dúvida, pois estou usando Codeigniter.

 

E gostaria de saber onde devo criá-la e como chamá-la, por exemplo:

Devo criar como em um Controller, ou em outra pasta ?

 

Grato,

 

Cesar

Share this post


Link to post
Share on other sites

Não conheço muito Codeigniter, mas depende de como você tratará a função, pode ser diretamente dentro de um View, o Controller pelo que sei trata mais de requisições. Sobre a parte do timezone, deve ficar no topo da página.

Share this post


Link to post
Share on other sites

Esqueci, a tabela de fuso horários é só uma orientação pra substituir o trecho abaixo caso seja de outro estado, pois está setado para São Paulo.

date_default_timezone_set("America/Sao_Paulo"); // Define o fuso horário

 

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 jdlucena
      Eu tenho um sistema em php e utilizei esse site http://www.pipsomania.com/best_php_obfuscator.do para ofuscar meu código.
       
      Porém, acabei perdendo o código original que estava no hd externo e agora o hd não funciona mais.
       
      Alguém conhece uma forma de reverter o código ofuscado? Entrei em contato com o desenvolvedor do site pipsomania.service@gmail.com mas não tive retorno.
       
      Exemplo de como ficou meu código:
      <?php ${"G\x4c\x4f\x42ALS"}["\x76v\x66\x68\x74\x77c\x73\x69\x70\x66"]="\x6c\x6f\x67i\x6e";if(version_compare(PHP_VERSION,"\x35\x2e3\x2e7","<")){exit("\x53\x6frry,\x20\x53i\x6d\x70le\x20\x50\x48P\x20\x4c\x6fgi\x6e\x20d\x6f\x65\x73\x20n\x6ft \x72un\x20on a P\x48P\x20v\x65r\x73\x69on \x73m\x61ller t\x68\x61n 5\x2e3\x2e7\x20\x21");}else if(version_compare(PHP_VERSION,"5\x2e\x35.0","<")){require_once("li\x62\x72\x61\x72\x69e\x73/p\x61\x73\x73\x77or\x64\x5f\x63om\x70ati\x62i\x6c\x69ty\x5f\x6c\x69b\x72a\x72y.\x70h\x70");}require_once("c\x6fn\x66\x69g/db\x2eph\x70");require_once("c\x6ca\x73se\x73/\x4cogin\x2ep\x68\x70");${${"GLOB\x41L\x53"}["v\x76f\x68\x74w\x63s\x69\x70\x66"]}=new Login();include("\x76\x69ew\x73/\x69n\x64\x65x.\x70\x68p"); ?>  
    • By asacap1000
      Galera já verifiquei vários páginas do google mas não encontrei o que precisava. Temos um sistema a qual no final temos a opção d imprimir os dados. que até aí está perfeito utilizo bootstrap para o layout e está ok. Porém preciso colocar a opção de pdf também aí não sai de jeito nenhum com o bootstrap. preciso gerar algo neste formato.
       

       
      Se alguem puder me dar um norte referente a isso agradeço demais.
    • By manigold
      Estou com um pequeno problema nessa parte:
      $monsters = simplexml_load_file($otdir . '/data/monster/monsters.xml') or die('<b>Could not load monsters!</b>'); foreach($monsters->monster as $monster) { $loot = simplexml_load_file($otdir . '/data/monster/' . $monster['file']); if($loot) { if($item = $loot->loot->item){ A pagina mostra a lista de items corretamente mas se eu tenho um item dentro de outro item ,como nesse exemplo:
      <loot> <item id="2148" countmax="100" chance="33750" /> <item id="2148" countmax="100" chance="33750" /> <item id="2672" countmax="5" chance="80000" /> <item id="7399" chance="80" /> <item id="2392" chance="1428" /> <item id="2033" chance="3190" /> <item id="2547" countmax="7" chance="6700" /> <item id="5948" chance="3040" /> <item id="1987" chance="100000"> <!-- bag --> O PROBLEMA É NESSA PARTE <item id="5882" chance="5920" /> <item id="2498" chance="888" /> <item id="7378" countmax="3" chance="8800" /> <item id="2146" chance="5300" /> <item id="2414" chance="1500"/> <item id="2528" chance="2333" /> <item id="7402" chance="2000" /> <item id="2492" chance="730" /> </item> </loot> Os items dentro do item com id 1987 não são mostrados .
      Me desculpem se a explicação não esta muito boa , não entendo nada de php e xml ,eu agradeço se alguem puder me ajudar.
    • By gersonab
      Bom dia.
      utilizava um código para completar o endereço conforme o cep, funcionando perfeitamente, só que preciso pegar o cep caso não tenha, pelo endereço digitado, pesquisando pela internet encontrei o código abaixo, funciona perfeitamente para os dois casos, só que .... no meu formulário tenho dois campos de endereço, um residencial e outro de trabalho, o código que utilizava antes funcionava para os dois campos, erá só mudar o id do campo do formulário, tipo se eu tinha id="logadouro" em um campo no outro id="logadouro1", só que .... no código atualizado para ambas as pesquisas esta forma não funciona, gostaria da ajuda de vocês para este problema.
      código antigo:
      function limpa_formulário_cep() { $("#logradouro").val(""); $("#bairro").val(""); $("#localidade").val(""); $("#uf").val(""); } $("#cep").blur(function() { var cep = $(this).val().replace(/\D/g, ''); if (cep != "") { var validacep = /^[0-9]{8}$/; if(validacep.test(cep)) { $("#logradouro").val("..."); $("#bairro").val("..."); $("#localidade").val("..."); $("#uf").val("..."); $.getJSON("https://viacep.com.br/ws/"+ cep +"/json/?callback=?", function(dados) { if (!("erro" in dados)) { $("#logradouro").val(dados.logradouro); $("#bairro").val(dados.bairro); $("#localidade").val(dados.localidade); $("#uf").val(dados.uf); } else { limpa_formulário_cep(); alert("CEP não encontrado."); } }); } else { limpa_formulário_cep(); alert("Formato de CEP inválido."); } } else { limpa_formulário_cep(); } }); como podem ver era só duplicar e mudar o id, agora neste ja não consigo
      var inputsCEP = $('#logradouro, #bairro, #localidade, #uf'); var inputsRUA = $('#cep, #bairro'); var validacep = /^[0-9]{8}$/; function limpa_formulário_cep(alerta) { if (alerta !== undefined) { alert(alerta); } inputsCEP.val(''); } function get(url) { $.get(url, function(data) { if (!("erro" in data)) { if (Object.prototype.toString.call(data) === '[object Array]') { var data = data[0]; } $.each(data, function(nome, info) { $('#' + nome).val(nome === 'cep' ? info.replace(/\D/g, '') : info).attr('info', nome === 'cep' ? info.replace(/\D/g, '') : info); }); } else { limpa_formulário_cep("CEP não encontrado."); } }); } // Digitando RUA/CIDADE/UF $('#logradouro, #localidade, #uf').on('blur', function(e) { if ($('#logradouro').val() !== '' && $('#logradouro').val() !== $('#logradouro').attr('info') && $('#localidade').val() !== '' && $('#localidade').val() !== $('#localidade').attr('info') && $('#uf').val() !== '' && $('#uf').val() !== $('#uf').attr('info')) { inputsRUA.val('...'); get('https://viacep.com.br/ws/' + $('#uf').val() + '/' + $('#localidade').val() + '/' + $('#logradouro').val() + '/json/'); } }); // Digitando CEP $('#cep').on('blur', function(e) { var cep = $('#cep').val().replace(/\D/g, ''); if (cep !== "" && validacep.test(cep)) { inputsCEP.val('...'); get('https://viacep.com.br/ws/' + cep + '/json/'); } else { limpa_formulário_cep(cep == "" ? undefined : "Formato de CEP inválido."); } }); desde já agradeço.
    • By helkton
      Bom galera tenho um cardápio, onde cada categoria do cardápio tem um limite de itens que podem ser adicionados, agora preciso limitar os inputs selecionados de acordo com limite de cada categoria..
      olha meu código como esta...
      ////////////////////////////// aqui pego as categorias juntamente com os limites /////////////////////////////////// <?php $sqlConsultExtrasDelivery = "SELECT * FROM extras_delivery_item INNER JOIN extras_delivery ON(extras_delivery_item.idExtraItem = extras_delivery.idExtraDelivery) WHERE extras_delivery_item.idItem = '".$resultItemCardapio->iditemCategoria."' AND extras_delivery_item.checked = '1' "; $conectaConsultExtrasDelivery = $conectaDelivery->query($sqlConsultExtrasDelivery); while($resultExtrasDelivery = $conectaConsultExtrasDelivery->fetch_object()){ $limteExtra = $resultExtrasDelivery->limiteExtra;?> ////////////////////////////// aqui pego as categorias juntamente com os limites /////////////////////////////////// ////////////////////////////// aqui monto os itens de cada categoria /////////////////////////////////// <?php $sqlConsultItensExtras = "SELECT * FROM item_extra WHERE idItemExtra = '".$resultExtrasDelivery->idExtraDelivery."' "; $conectaConsultItensExtras = $conectaDelivery->query($sqlConsultItensExtras); while($resultItensExtras = $conectaConsultItensExtras->fetch_object()){?> ////////////////////////////// aqui monto os itens de cada categoria /////////////////////////////////// <input type="checkbox" class='limited' name="idExtraSelects[]" id="check<?php echo $resultItensExtras->idExtra?>" value="<?php echo $resultItensExtras->idExtra?>"> <label class="custom-control-description" for="check<?php echo $resultItensExtras->idExtra?>"> <?php echo utf8_encode($resultItensExtras->nomeItemExtra)?> </label> <script> $(function(){ var MAX_SELECT = <?php echo $limteExtra?>; // Máximo de 'input' selecionados $('input.limited').on('change', function(){ if( $(this).siblings(':checked').length >= MAX_SELECT ){ this.checked = false; } }); }); </script> <?php }?> <?php }?> não sei o que esta acontecendo pois ele esta limitando a 1 item no geral independente dos itens que seleciono 
×

Important Information

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