PHP: Porcentagem entre data inicial e final
Olá! Seja bem-vindo ao linhadecomando.com. Aproveite e acesse meu novo projeto.
Imagine o seguinte:
Na virada do ano de 2015 para 2016, você fez uma promessa que até o final do ano de 2016 você ia emagrecer… kkk Aí como está chegando o final do ano, você quer saber se ainda dá tempo para alcançar o “corpo ideal” e a porcentagem percorrida para o seu objetivo.
Sabendo disso, criei este post pra te ajudar. Não para perder o peso, é claro!
O código está bem explicativo. Qualquer dúvida deixe nos comentários.
<?php // função que calcula a diferença em dias de 2 datas function diferencaEmDias($data1, $data2){ // diferença em segundos entre as datas 2 e 1 $diferenca = strtotime($data2) - strtotime($data1); // 1 dia = 86400 segundos $segundos_de_um_dia = 60 * 60 * 24; // total de dias entre as datas $dias = intval( $diferenca / $segundos_de_um_dia ); return $dias; } // datas no padrão MySQL $data_inicial = "2016-01-01"; $data_final = "2016-12-31"; $data_atual = date("Y-m-d"); // retorna número de dias entre a data inicial e final $dias_dtInicial_x_dtFinal = diferencaEmDias($data_inicial, $data_final); // retorna número de dias entre a data atual e final $dias_dtAtual_x_dtFinal = diferencaEmDias($data_atual, $data_final); // retorna número de dias entre a data atual e inicial $dias_dtAtual_x_dtInicial = diferencaEmDias($data_inicial, $data_atual); // *** usado para verificacao //echo "<hr>"; //echo "dtAtual_x_dtInicial: ".$dias_dtAtual_x_dtInicial . " / dtInicial_x_dtFinal: " . $dias_dtInicial_x_dtFinal; //echo "<hr>"; // if( $dias_dtAtual_x_dtInicial == $dias_dtInicial_x_dtFinal ) { echo "Sua promessa de emagrecimento termina hoje (". $data_final ."). Força! Você consegue! uhuuuu..."; // }elseif ( $dias_dtAtual_x_dtInicial > $dias_dtInicial_x_dtFinal ){ echo "Sua promessa de emagrecimento terminou em {$data_final}. Espero que tenha conseguido."; // }else { // arredondando até 2 casas decimais $porcentagem = round((($dias_dtAtual_x_dtInicial / $dias_dtInicial_x_dtFinal) * 100), 2); echo "Falta(m) {$dias_dtAtual_x_dtFinal} dia(s) para alcançar o corpo ideal. Concluído {$porcentagem}% do seu objetivo."; } ?> |
Neste post eu mostro como exibir data no padrão brasileiro.