Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Galera meu problema é o seguinte, tenho uma data dentro de um formulário e data esta da seguinte maneira. 00/00/0000 00:00:00 preciso inserir ela da forma correta dentro do banco de dados, mais preciso converte ela para esse formato: 0000-00-00 00:00:00 Alguém me da um help ai.
Amigo, você pode pegar a string da sua data e usar a função substr do PHP.
substr($string, caractere inicial, quantidade a ser selecionada);
$data = "00/00/0000 00:00:00";
$ano = substr($data, 6,4);
A variável ano vai ser 0000.$data = "DD/MM/AAAA HH:MM:SS";
list ($data, $hora) = explode(" ", $data);
$data = implode("-", array_reverse(explode("/", $data)));
$data_sql = "{$data} {$hora}"; // AAAA-MM-DD HH:MM:SS
...Ou melhor:
$data_entrada = "10/02/2013 05:04:33";
$formato_entrada = "d/m/Y H:i:s";
$formato_saida = "Y-m-d H:i:s";
try {
$data = DateTime::createFromFormat($formato_entrada, $data_entrada);
$erros = DateTime::getLastErrors();
if ($erros['warning_count'] or $erros['error_count']) {
throw new Exception("Data inválida: '{$data_entrada}'; a data precisa estar no formato '{$formato_entrada}'."
. " Avisos ({$erros['warning_count']}): " . implode(". ", $erros['warnings'])
. " Erros ({$erros['error_count']}): " . implode(". ", $erros['errors'])
);
} echo $e->getMessage();
exit;
}
$data_saida = $data->format($formato_saida);
echo $data_saida; // 2013-02-10 05:04:33// Abstraindo a partir de uma string no formato ISO 8601 Y/M/D
echo date( 'Y', strtotime( '2013-06-27 13:25' ) );
// Abstraindo a partir de uma string no formato ISO 8601 D/M/Y (comumente usado no Brasil)
echo date( 'Y', strtotime( '27/06/2013 13:25' ) );
// Exemplo para o caso do topico:
echo date( 'Y-m-d H:i:s', strtotime( '27/06/2013 13:25' ) );
http://en.wikipedia.org/wiki/Date_format_by_country
http://en.wikipedia.org/wiki/ISO_8601
>
// Exemplo para o caso do topico:
echo date( 'Y-m-d H:i:s', strtotime( '27/06/2013 13:25' ) );
Beleza, mas tem que substituir a '/' por '-'
echo date( 'Y-m-d H:i:s', strtotime( '27/06/2013 13:25' ) );
// retorna: 1969-12-31 21:00:00
echo "<br>";
echo date( 'Y-m-d H:i:s', strtotime( str_replace("/", "-", '27/06/2013 13:25:28') ) );
// retorna: 2013-06-27 13:25:28#6.. não necessita converter a barra por hífen...
#6.. não necessita converter a barra por hífen...
Se você quiser usar o formado d/m/Y em strtotime, precisa trocar o separador por um '-'. Pois se o separador for uma barra '/', a data será interpretada como no formato americano m/d/Y, mas se o separador for 'hifeim '-' ou ponto '.', então será interpretada como no formato europeu d/m/Y (usado no Brasil).
>
Dates in the m/d/y or d-m-y formats are disambiguated by looking at the separator between the various components: if the separator is a slash (/), then the American m/d/y is assumed; whereas if the separator is a dash (-) or a dot (.), then the European d-m-y format is assumed.
To avoid potential ambiguity, it's best to use ISO 8601 (YYYY-MM-DD) dates or DateTime::createFromFormat() when possible.
Vlw Galera problema Resolvido!
Flw
está é uma das formas que existe.
http://imasters.com.br/artigo/5871/dreamweaver/datas-no-mysql-com-sql-ou-php/