Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Ola FabyoGostaria de saber como trato uma data antes de grava-la no php, pois criei um cadastro de clientes e quando gravo o dado no mysql, fica gravado 1/1/0001.grato
essa era uma duvida que eu tinha ate um tempinho atras... o que eu fiz foi o seguinte:
pra dar o tratamento no formato da hora eu usei a função ereg()
http://br.php.net/manual/pt_BR/function.ereg.php (ja na referencia do PHP ja tem como exemplo o tratamento de data)
eu recomendo que no banco de dados voce use um campo apropriado para a data...
o script para a inserção no BD você faz o seguinte:
PHP [/tr][tr]$editFormAction = $HTTP_SERVER_VARS['PHP_SELF'];
if (isset($HTTP_SERVER_VARS['QUERY_STRING'])) {
$editFormAction .= "?" . $HTTP_SERVER_VARS['QUERY_STRING'];
}
@$data = $_POST['data'];
if (ereg ("([0-9]{1,2})/([0-9]{1,2})/([0-9]{4})", $data, $regi)) {
$databd = "$regi[3]-$regi[2]-$regi[1]";
}
if ((isset($HTTP_POST_VARS["MM_insert"])) && ($HTTP_POST_VARS["MM_insert"] == "form1")) {
$insertSQL = sprintf("INSERT INTO teste (id, data) VALUES (%s, '$databd')",
GetSQLValueString($_POST['id'], "int"),
GetSQLValueString($data, "int"));
[/tr]
repare q no insert, onde deveria estar um'%s' referente ao campo 'data' eu coloquei o nome da variavel que eu tratei
qualquer duvida, posta ae!!
parece que tem coisa errada ai se você tivesse usando o campo DATE do banco ele nao iria aceitar essa data e ficaria 0000-00-00 e se nao tiver assim recomendo a deixar o campo da data como DATE
e depois usar isso:
$data_nova = "$arr[2]-$arr[1]-$arr[0]"; // 0000-00-00
echo $data_nova