Olá! Preciso de uma ajuda dos nobres colegas deste fórum.
Tenho o seguinte código JavaScript:
<script type="text/javascript">
$(document).ready(function() {
$("select[name='plano']").change(function() {
var $valor = $("input[name='valor']");
var $validade = $("input[name='validade']");
var $nome = $("input[name='nome']");
$.getJSON('classes/preenche_campo/function.php', {
plano: $(this).val()
}, function(json) {
$valor.val(json.valor);
$validade.val(json.validade);
$nome.val(json.nome);
});
});
});
</script>
Ele envia o ID do PLANO para o PHP, a seguir:
<?php
$host = "servidor";
$usuario = "usuario";
$senha = "senha";
$banco = "banco";
$conn = mysqli_connect($host, $usuario, $senha, $banco);
function retorna($plano, $conn){
$result_consulta = "SELECT * FROM planos WHERE idplano = '$plano' LIMIT 1";
$resultado_consulta = mysqli_query($conn, $result_consulta);
if($resultado_consulta->num_rows){
$row_consulta = mysqli_fetch_assoc($resultado_consulta);
date_default_timezone_set('America/Sao_Paulo');
$hoje = date("Y/m/d");
$venc_rec = "2019/10/12";
$validade = $row_consulta['validade'];
if($venc_rec > $hoje){
$vencimento = date('Y/m/d', strtotime('+'.$validade.' days', strtotime($venc_rec)));
}else{
$vencimento = date('Y/m/d', strtotime('+'.$validade.' days', strtotime($hoje)));
}
$valores['valor'] = "R$ ".$row_consulta['valor'];
$valores['validade'] = date('d/m/Y', strtotime($vencimento));
$valores['nome'] = $row_consulta['nome'];
}else{
$valores['nome'] = 'Plano não encontrado';
}
return json_encode($valores);
}
if(isset($_GET['plano'])){
echo retorna($_GET['plano'], $conn);
}
?>
O código PHP pega o id que foi passado pelo JavaScript e retorna o vencimento mediante a validade retornada pelo banco de acordo com o Plano do ID, contando da data do HOJE.
Até então estes códigos funcionam perfeitamente, mas agora preciso que o JavaScript passe também uma data, além do plano, para que o vencimento seja calculado com a validade a partir da data, passada via parâmetro, e não do HOJE.
A variável "$venc_rec" deve receber a data passada, mas por hora está fixa, só para o código continuar funcionando.
A intenção é que o PHP verifique se o vencimento atual é maior que a data do HOJE, se for, ele deverá somar a validade a partir deste vencimento, e se o vencimento for excedido a validade seja adicionada ao dia do HOJE.
A validade recebida do banco é um número inteiro e as data são tratadas no formato "YYYY/mm/dd" mas exibidas para o usuário do sistema de recargas em "dd/mm/YYYY" (os formatos das datas não são tão relevantes, somente informei porque o código não faz os cálculos corretamente com a data no formato brasileiro).
Já tentei de várias formas, mas aí o código para de funcionar.
Se puderem me ajudar, serei imensamente grato.