Gravando data errada no banco.
o seguinte código esta gravando a data no padrão YYYY/MM/DD e gostaria que fosse o DD/MM/YYYY.
Obrigado!
<?php
include "config/config.php"; //inclue seu arquivo de conexão com banco de dados
$valor = $_POST['valor'];
$parcelas = $_POST['parcelas'];
$datapagamento1 = implode(!strstr($_POST['datapagamento1'], '/') ? "/" : "-", array_reverse(explode(!strstr($_POST['datapagamento1'], '/') ? "-" : "/", $_POST['datapagamento1']))); //Esta rotina é para converter a data do formato brasileiro para o americano
$diavencimento = $_POST['vencimento'];
$gravadata = $datapagamento1;
$sql = "INSERT INTO mensalidades (valor_mens, data_mens, num_mens) VALUES ";
echo '<table border="1">';
echo "<tr>";
echo "<td>Parcela</td>";
echo "<td>Valor</td>";
echo "<td>Vencimento</td>";
echo "</tr>";
for ($i = 1; $i <= $parcelas; $i++) {
//Parcela
$parcela = $i . "a"; //grava o número da parcela assim: 1a, 2a, 3a, etc...
echo "<tr>";
echo "<td>";
echo $parcela;
echo "</td>";
//Valor
echo "<td>";
echo $valor;
echo "</td>";
//Vencimento
echo "<td>";
echo implode(!strstr($gravadata, '-') ? "-" : "/", array_reverse(explode(!strstr($gravadata, '-') ? "/" : "-", $gravadata))); //Muda para o formato brasileiro
echo "</td>";
echo "</tr>";
if (!empty($diavencimento)) { //Se o dia de vencimento não tiver em branco
$dia = $diavencimento; //o dia será igual ao dia de vencimento
} else {
$dia = date("d", strtotime($gravadata)); //se o dia de vencimento tiver em branco, então o dia será igual ao dia da data de vencimento
}
$mes = date("m", strtotime($gravadata)) + 1;
$ano = date("Y", strtotime($gravadata));
$sql .= "(" . $valor . ", '" . $gravadata . "', '" . $parcela . "'),";
if ($mes == 13) { //se passar do mês 12, então inicia com o mes 1 do próximo ano
$mes = 1;
$ano = $ano + 1;
}
if ($dia == 30 && $mes == 2) { //fevereiro não pode ter 30 dias não é. kkk
$gravadata = $ano . "-" . $mes . "-28";
} else {
$gravadata = $ano . "-" . $mes . "-" . $dia;
}
}
echo "</table>";
//Remove a última vírgula da string SQL
$sql = substr($sql, 0, -1);
//Salva no banco
try {
echo "<p>String SQL: $sql</p>";
$stmt = BD::getConn()->prepare($sql);
if ($stmt->execute()):
echo "Mensalidades inseridas com sucesso.";
else:
echo "Erro ao inserir!";
endif;} catch (Exception $e) {
echo 'ERROR: ', $e->getMessage(), "\n";
}
A Saida do sistema.
Parcela Valor Vencimento 1a 78 20/01/2016 2a 78 03/2/2016 3a 78 03/3/2016 4a 78 03/4/2016 5a 78 03/5/2016 String SQL: INSERT INTO mensalidades (valor_mens, data_mens, num_mens) VALUES (78, '2016-01-20', '1a'),(78, '2016-2-03', '2a'),(78, '2016-3-03', '3a'),(78, '2016-4-03', '4a'),(78, '2016-5-03', '5a')
Mensalidades inseridas com sucesso.
Discussão (3)
Carregando comentários...