sakamoto 0 Denunciar post Postado Setembro 30, 2012 Ola a todos! Tenho um seguinte problema: peguei um site já com uma base de dados em mysql onde o campo data de noticias está em timestamp. Consegui fazer o gerenciador certinho porém começou a apresentar uma falha... que o cliente descobriu e me notificou... a partir de 01/08/2012 a data sempre grava com 31/12/1969 (cheguei nesta data de agosto fazendo testes um a um.) O que pode estar acontecendo? abaixo o codigo que utilizo function NTPtoUnixtime($ntptime) { $explodedNTPtime = explode(" ", $ntptime,2); $startOfDay = strtotime("Today"); $timeThroughDay = strtotime($explodedNTPtime[0]) - $startOfDay ; return strtotime($explodedNTPtime[1])+$timeThroughDay; } $dia= $_REQUEST["data_sistema"]; $diaa=substr($dia,0,2).""; $mes=substr($dia,3,2).""; $ano=substr($dia,6,4); $aux_data = explode("/",$dia); $DATA = $aux_data[2]."-".$aux_data[1]."-".$aux_data[0]; $diasemana = date("w", mktime(0,0,0,$aux_data[1],$aux_data[0],$aux_data[2]) ); switch($diasemana) { case"0": $dia_semana = "Sun"; break; case"1": $dia_semana = "Mon"; break; case"2": $dia_semana = "Tue"; break; case"3": $dia_semana = "Wed"; break; case"4": $dia_semana = "Thu"; break; case"5": $dia_semana = "Fri"; break; case"6": $dia_semana = "Sat"; break; } switch($aux_data[1]) { case "01" : $mesprint = "Jan"; break; case "02" : $mesprint = "Feb"; break; case "03" : $mesprint = "Mar"; break; case "04" : $mesprint = "Apr"; break; case "05" : $mesprint = "May"; break; case "06" : $mesprint = "Jun"; break; case "07" : $mesprint = "Jul"; break; case "08" : $mesprint = "Ago"; break; case "09" : $mesprint = "Set"; break; case "10" : $mesprint = "Out"; break; case "11" : $mesprint = "Nov"; break; case "12" : $mesprint = "Dez"; break; } $ntpTime = "00:00:00.000 ".$dia_semana." ".$mesprint." ".$aux_data[0]." ".$aux_data[2]; $time_adjustment = NTPtoUnixtime($ntpTime); o que gravo na base (que está com varchar 20 é o time_adjustment Alguma luz para este problema?!?! Obrigado a todos Sakamoto Compartilhar este post Link para o post Compartilhar em outros sites
Kakashi_Hatake 267 Denunciar post Postado Setembro 30, 2012 Você está tentando imprimir a data por extenso com base no timestamp vindo do banco de dados certo? Existe uma forma mais fácil de se conseguir isso que é utilizando strftime. <?php header( 'Content-Type: text/html; charset=iso-8859-1' ); setlocale( LC_ALL, 'pt_BR', 'pt_BR.iso-8859-1', 'pt_BR.utf-8', 'portuguese' ); date_default_timezone_set( 'America/Sao_Paulo' ); $timestamp = time( ); // timestamp que virá do banco de dados echo strftime( '%A, %d de %B de %Y, %H:%M:%S', $timestamp ); // domingo, 30 de setembro de 2012, 11:07:19 ?> Compartilhar este post Link para o post Compartilhar em outros sites