Problema com a data ao gerar parcelas com função mktime do MySQL
Boa tarde, pessoal! Não sou muito de pedir ajuda em fórum, procuro sempre resolver meus pepinos que aparecem durante o desenvolvimento. Mas, nesse caso em específico, já tentei de tudo e não consegui solução. Estou desenvolvendo um sistema web em PHP e consegui salvar parcelas no banco de dados MySQL. O problema só está sendo porque independente da data do serviço que eu escolha ou digite no campo de data do formulário, o dia salvo no banco de dados fica 2017-09-19. Ou seja, já tentei salvar a data 2017-08-18, que é hoje, já tentei outras datas para frente e para trás e sempre vai para o banco de dados a mesma coisa 2017-09-19, 2017-10-19, 2017-11-19, etc. Os meses e ano está correto, inclusive quando divido em 6 parcelas ele muda o ano certinho e tudo, o problema está sendo só o dia. Sempre 19. Segue o código que estou usando para gerar as parcelas:
$serviceID = mysqli_insert_id($conn);
$sql1 = "SELECT id_servico, data_servico,valor_procedimento,qtd_parcelas FROM servico WHERE id_servico = '$serviceID'";
$query1 = mysqli_query($conn,$sql1);
while($row = mysqli_fetch_assoc($query1)){
$servicoID = $row['id_servico'];
$dataS = $row['data_servico'];
$valorP = $row['valor_procedimento'];
$qtdP = $row['qtd_parcelas'];
//separando a data do serviço por partes
date_default_timezone_set('America/Recife');
$partes = explode("-",$dataS);
$dia = $partes[0];
$mes = $partes[1];
$ano = $partes[2];
//dividindo o valor total do servico pelo número de parcelas
$valor_parcela = $valorP/$qtdP;
for($i = 1;$i <= $qtdP;$i++){
//incrementando o mês em 1 para a primeira parcela entrar no
//mês posterior
//$data_vencimento = $dia.'-'.($mes+1).'-'.$ano;
$data_vencimento = date('Y-m-d',strtotime("+".$i." month",mktime($mes,$dia,$ano)));
$sql2 = "INSERT INTO parcelamento(id_servico,valor_parcela,parcela,data_vencimento) VALUES('$servicoID','$valor_parcela','$i','$data_vencimento')";
$insert2 = mysqli_query($conn,$sql2);
}
}
Tentei enviar em anexo imagem do retorno do BD, mas não está aceitando o arquivo. Só consegui enviar copiando e colando aqui.
'357', '77', '2', '2017-10-19', '108.33', '0', '0'
'358', '77', '3', '2017-11-19', '108.33', '0', '0'
'359', '77', '4', '2017-12-19', '108.33', '0', '0'
'360', '77', '5', '2018-01-19', '108.33', '0', '0'
'361', '77', '6', '2018-02-19', '108.33', '0', '0'
'362', '89', '1', '2017-09-19', '183.33', '0', '0'
'363', '89', '2', '2017-10-19', '183.33', '0', '0'
'364', '89', '3', '2017-11-19', '183.33', '0', '0'
'365', '89', '4', '2017-12-19', '183.33', '0', '0'
'366', '89', '5', '2018-01-19', '183.33', '0', '0'
'367', '89', '6', '2018-02-19', '183.33', '0', '0'
Ah, só explicando que no código acima o parâmetro de hora do mktime (0,0,0) não coloquei pois estava salvando no BD assim, com o ano 2024 e as datas nada a ver com o que passei no formulário:
'344', '75', '1', '2024-04-08', '133.33', '0', '0'
'345', '75', '2', '2024-05-08', '133.33', '0', '0'
'346', '75', '3', '2024-06-08', '133.33', '0', '0'
'347', '75', '4', '2024-07-08', '133.33', '0', '0'
'348', '75', '5', '2024-08-08', '133.33', '0', '0'
'349', '75', '6', '2024-09-08', '133.33', '0', '0'
Me perdoem qualquer falha, pois é a primeira vez que peço ajuda em fórum. Fico grata a quem puder me auxiliar.Discussão (0)
Carregando comentários...