O script que vou apresentar aqui é para converter a string para o respectivo formato, no final da conversão apenas valido se todos os caracteres foram preenchidos, mas não faço uma validação real (como meses, dias, etc.).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
public function parse_datetime ($campo) { if(!$campo) { return <a href="http://php.net/manual/en/function.date.php" target="_blank">date</a>('Y-m-d HH:ii:ss'); } else { // YYYY-mm-dd HH:ii:ss $campo = $this->parse_date($campo) . " " . substr($campo, 11, 2).":".substr($campo, 14, 2).":".substr($campo, 17, 18); // Caso não tenha os segundos. if(<a href="http://php.net/manual/en/function.preg-match.php" target="_blank">preg_match</a>('/:$/', $campo)) { $campo = $campo.date('s'); } if(<a href="http://php.net/manual/en/function.preg-match.php" target="_blank">preg_match</a>('/([0-9]){4}-([0-9]){2}-([0-9]){2}[s]([0-9]){2}:([0-9]){2}:([0-9]){2}/', $campo)) { return $campo; } else { return <a href="http://php.net/manual/en/function.date.php" target="_blank">date</a>('Y-m-d H:i:s'); } } } |
A função acima converte uma string no formato dd/mm/YYYY HH:ii:ss. Na função abaixo, é mostrada a implementação da função para formatar strings no formato dd/mm/YYYY.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
public function parse_date ($campo) { if(!$campo) { return date('Y-m-d'); } else { // YYYY-mm-dd $campo = substr($campo, 6, 4)."-".substr($campo, 3, 2)."-".substr($campo, 0, 2); if(<a href="http://php.net/manual/en/function.preg-match.php" target="_blank">preg_match</a>('/([0-9]){4}-([0-9]){2}-([0-9]){2}/', $campo)) { return $campo; } else { return <a href="http://php.net/manual/en/function.date.php" target="_blank">date</a>('Y-m-d'); } } } |
No que neste exemplo há o princípio de reutilização de código, ou seja, para formatar uma data TIMESTAMP OU DATETIME, é utilizado a função parse_date para formatar o início da nova data.
Quaisquer dúvidas é só postar.
Abraços e até a próxima.