Ir para conteúdo

Arquivado

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

diegohamaz1

strtotime verificando ano bisexto

Recommended Posts

Galera ,

 

 

Seguinte, eu tenho um sistrema de fatura na minha empresa e quando a pessoa paga , eu gero uma recorrência aonde a pessoa é cobrada após o pagamento, segue o codigo abaixo

 

if($fatura[0]->tipo_plano == "mensal"){
					
if($mesDaBaixa[1] == "1"){
$dias = " + 26 days";
}else{
$dias = " + 28 days";
}					
$data_proximo_faturamento = date('Y-m-d', strtotime($dataPagamentoPBaixa . $dias) );

Como podem ver estou fazendo esse tratamento que acho que pode dar algum erro , alguem tem uma solução aonde posso tratar pra ano bisexto e o cara ser cobrado na data correta??

 

 

Att

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se quiser saber se o ano é boolean, existem algumas formas mais simples:

function isLeapYear($date = 'NOW')
{  
    return (boolean)(new \DateTime($date))->format('L');
}

var_dump(isLeapYear());//false

De qualquer forma, date_add ou DateTime::add resolve seu problema.

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por leonardorocha
      Prezados, boa tarde!
       
      Tenho uma apresentação que imprime determinados valores de acordo com a data cadastrada no sistema.
       
      O código abaixo está funcionando para algumas datas e outras não. Um exemplo é o intervalo de datas 01/03/2019 a 30/06/2019
       
      Este nunca é executado conforme o código abaixo. Se alguém souber aonde encontra-se o erro por favor me informe.
      <div class="row justify-content-md-center"> <?php foreach ($model->getItems() as $calendar) { $dataI = date("d/m/Y", strtotime($calendar->start_date)); $dataF = date("d/m/Y", strtotime($calendar->end_date)); $titulo = $calendar->title; ?> <div class="col-md-3 col-sm-6"> <div class="item-calendario"> <div itemprop="event" itemscope itemtype="http://schema.org/Event"> <?php $atual = strtotime(date("d/m/Y")); $periodo = array('inicio' => strtotime($dataI), 'fim' => strtotime($dataF)); if($atual >= $periodo['inicio'] && $atual <= $periodo['fim'] ){ echo '<div class="icone-calendario"><i class="fa fa-clock-o fa-lg" aria-hidden="true" style="color:#0661ab"></i></div> <div class="status-calendario agora"><span>AGORA</span></div>'; } if($atual < $periodo['inicio'] && $atual < $periodo['fim'] ){ echo '<div class="status-calendario"><span>EM BREVE</span></div>'; } ?> <div class="periodo-calendario" itemprop="startDate" content="{{startDateIso}}"> <span><?php echo $dataI . ' a ' . $dataF ?></span> </div> <div class="texto-calendario"> <a href="<?php echo $calendar->url; ?>" itemprop="url"> <span itemprop="name"><?php echo $titulo; ?></span> </a> </div> </div> </div> </div> <?php } ?> </div>  
    • Por Gurandao
      Olá galera, preciso criar um cálculo de correção monetária, já criei a tabela com todos os índices e fatores baseados no site https://api.tjsp.jus.br (Abril/2017).
      Vamos ao que interessa:
      Puxei os valores da tabela, a fórmula do cálculo é: Valor  (dividido) pelo fator do mes que venceu (multiplicado) pelo ultimo indice cadastrado (mes anterior).
      Então temos os valores: Valor (270.72), fator do mês que venceu (48.485963) e fator do mês anterior atual (66.839575).
      Eu criei o seguinte cálculo:
      $correcao =$valor / $fator_vcto * $fator_atual;
      ou seja:
      $correcao = 270.72 / 48.485963 * 66.839575;
      O resultado que ele me apresenta é 276.699454107990 sendo que na calculadora e no excel o valor correto calculado é 373.1968723
       
      Desde já agradeço à todos que puderem me ajudar!
       
    • Por Hisoka.
      Bom dia!
      Eu qria uma ajuda pra criar um cálculo que gere uma porcentagem de 0% até 100% a partir dos segundos. Por ex: Eu tenho uma data limite e a data atual, qnt mais próximo a data atual estiver data final irá aumentando a porcentagem. Abaixo, ambas eu converto em segundos e aplico uma regra de 3, porém em segundos tá dando mais de 1000%. Em minutos funcionava, porem, o contador de porcentagem zerava ao final de cada hora.
      O que eu consegui fzr até agr foi isso, baseado no calculo com minutos.
      Calculo com segundos:
      $dataFinal = strtotime('2016-09-27 11:58:00'); $sla = 1; echo 'timestamp:'.$time = time().'<br>'; echo 'Seg. final:'.$dataFinal.'<br>'; $sla = $sla * 60 * 60;//converto a qntdd de horas para segundos $porcentagem = ($time * 100)/$sla; echo $porcentagem; Calculo com minutos:
      $sla = 1; $minutoAtual = date('i'); $sla = $sla * 60;//converto em minutos. $porcentagem = ($minutoAtual * 100)/$sla; echo $porcentagem; O calculo com minutos funciona com 1h. Se eu colocar $sla = 2, qnd chegar na metade do tempo, ele zera.
    • Por ronei pires
      Boa tarde a todos, tenho em formulário onde eu comparo duas datas ( dt_ocorrencia e dt_prev_entrega ) e trago o resultado, ate ai ok,,, porem gostaria de ao digitar em uns dos campos atualizasse o resultado.
      Desde já agradeço
      segue código
      </div> </div> <div class="form-group"> <label for="inputEmail3" class="col-sm-2 control-label">Dt Ocorrência:</label> <div class="col-sm-10"> <input type="date" required name="dt_ocorrencia" class="form-control" value="<?php echo $data_inicial = date('Y-m-d'); ?>"> </div> </div> <div class="form-group"> <label for="inputEmail3" class="col-sm-2 control-label">Prev. de Entrega:</label> <div class="col-sm-10"> <input type="date" required name="dt_prev_entrega" class="form-control" value="<?php echo $data_final = date('2016-08-12'); ?>"> </div> </div> <div class="form-group"> <label for="inputEmail3" class="col-sm-2 control-label">SLA:</label> <div class="col-sm-10"> <input type="text" required name="sla" Onclick="calc()" class="form-control" value="<?php // Calcula a diferença em segundos entre as datas $diferenca = strtotime($data_final) - strtotime($data_inicial); //Calcula a diferença em dias $dias = floor($diferenca / (60 * 60 * 24)); echo "$dias"; ?>"> </div> </div>
    • Por ronei pires
      Boa tarde a todos, tenho em formulário onde eu comparo duas datas ( dt_ocorrencia e dt_prev_entrega ) e trago o resultado, ate ai ok,,, porem gostaria de ao digitar em uns dos campos atualizasse o resultado.
      Desde já agradeço
      segue códido.
      </div> <div class="form-group"> <label for="inputEmail3" class="col-sm-2 control-label">Dt Ocorrência:</label> <div class="col-sm-10"> <input type="date" required name="dt_ocorrencia" class="form-control" value="<?php echo $data_inicial = date('Y-m-d'); ?>"> </div> </div> <div class="form-group"> <label for="inputEmail3" class="col-sm-2 control-label">Prev. de Entrega:</label> <div class="col-sm-10"> <input type="date" required name="dt_prev_entrega" class="form-control" value="<?php echo $data_final = date('2016-08-12'); ?>"> </div> </div> <div class="form-group"> <label for="inputEmail3" class="col-sm-2 control-label">SLA:</label> <div class="col-sm-10"> <input type="text" required name="sla" Onclick="calc()" class="form-control" value="<?php // Calcula a diferença em segundos entre as datas $diferenca = strtotime($data_final) - strtotime($data_inicial); //Calcula a diferença em dias $dias = floor($diferenca / (60 * 60 * 24)); echo "$dias"; ?>"> </div> </div>
×

Informação importante

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