PHP: Convertir fecha de Twitter del formato RFC 2822 a uno de MySQL

Pues he estado probando la API de twitter y el campo created_at tiene la fecha en formato RFC 2822, osea en español algo así: Sun, 14 Aug 2005 16:13:03 +0000, el problema esta al guardar la información en la base de datos MySQL, ya que solo acepta formato “YYYY-MM-DD HH:MM:SS” entonces, ocupamos modificar esta información.

la solución esta en utilizar 2 funciones de PHP: strtotime y date

strtotime lo que hace es convertir una descripción de fecha/hora textual en Inglés a una fecha Unix y con comando date le damos el formato que deseemos.

Teniendo algo así.

date(‘Y-m-d H:i:s’,strtotime($json->created_at))

localtime: Configurar Zona Horaria en Linux para México

Si al escribir el comando date te aparece otra hora diferente a donde vives, lo más seguro es que tu zona horaria este en quien sabe donde!, la solución es ponerla a la del tu país/zona.

Los comandos son muy fáciles, en general debemos respaldar, buscar la zona correcta y crear un enlace dinámico , todo como SU (sudo para ubunteros y demas) jeje.

mv /etc/localtime /etc/localtime.bak
ln -sf /usr/share/zoneinfo/America/Mexico_City /etc/localtime

Si no saben cual es su zoneinfo pueden navegar en las carpetas de /usr/share/zoneinfo y poner la que corresponde a tu zona horaria.

Y listo! ahora escribimos date y ya tenemos la fecha correcta.,
No olviden que pueden utilizar NTP para siempre tener la fecha correcta, aca otro post para tener actualizada tu fecha

Public NTP Secondary (stratum 2) Time Servers

A continuación se mostrará la lista de servidores NTP (Network Time Protocol) públicos de stratum 2

Estan clasificados en dos tipos basicamente (Por nivel de precision):

  • Stratum 1: sincronizan con fuentes de tiempo externas (relojes atómicos o radio-antenas).
  • Stratum 2: sincronizan con los Stratum 1.
  • Stratum n: Sincronizan con Stratum n-1 (siendo “n” 3 en el caso de sincronizar con un Stratum 2).

Sigue leyendo

Public NTP Primary (stratum 1) Time Servers

A continuación se mostrará la lista de servidores NTP (Network Time Protocol) públicos de stratum 1

Estan clasificados en dos tipos basicamente (Por nivel de precision):

  • Stratum 1: sincronizan con fuentes de tiempo externas (relojes atómicos o radio-antenas).
  • Stratum 2: sincronizan con los Stratum 1.
  • Stratum n: Sincronizan con Stratum n-1 (siendo “n” 3 en el caso de sincronizar con un Stratum 2).

Sigue leyendo

Servidores NTP públicos

A continuación se mostrará una lista de servidores NTP (Network Time Protocol) públicos.

Estan clasificados en dos tipos basicamente (Por nivel de precision):

  • Stratum 1: sincronizan con fuentes de tiempo externas (relojes atómicos o radio-antenas).
  • Stratum 2: sincronizan con los Stratum 1.
  • Stratum n: Sincronizan con Stratum n-1 (siendo “n” 3 en el caso de sincronizar con un Stratum 2).

Esta estructura gerárquica existe para no sobrecargar a los Stratum 1. Posiblemente sea mas preciso, un Stratum 2 cercano que un Stratum 1 lejano. Desde aqui yo te recomiendo un Stratum 2, si vas a trabajar con ellos solo de cliente. (deja los Stratum 1 para los que monten un Stratum 2.)

La lista fue extraida de http://kopernix.com/?q=ntp la cual fue extraida de http://www.eecis.udel.edu/~mills/ntp/clock2a.html jeje, otro respaldo más para internet.

Aquí las ligas para ver los Stratum 1 y los Stratum 2

Linux: Actualizar el horario automaticamente

Como ya sabrán el día de hoy se tiene que adelantar el reloj 1 hora por el “horario de verano”, pero que pasa si lo queremos hacer automaticamente y ademas siempre tener la hora exacta, la solución es NTP (Network Time Protocol), lo bueno que linux (y todos los sistemas operativos, lease Windows y Mac) tienen este protocolo.

Primero debemos de ver que hora es la actual, ejecutando el comando:

#date
Sun Apr 3 14:14:04 UTC 2011

Si se fijan me dice que la hora es del tipo UTC, pero nosotros la ocupamos especificamente de nuestro lugar, México.

para hacer ejecutamos el comando tzdata, en este caso lo vamos a reconfigurar:

# dpkg-reconfigure tzdata

1.- Nos pregunta el área geografica: America
2.- Buscamos Mexico_City

y listooo!.., al final nos aparece el cambio:

Current default time zone: ‘America/Mexico_City’
Local time is now: Sun Apr 3 09:14:53 CDT 2011.
Universal Time is now: Sun Apr 3 14:14:53 UTC 2011.

Si se fijan ahora dice CDT y no el horario universal, si vuelven a ejecutar date les aparecerá correcta la hora.

Ahora bien sigue la automatización de la hora, como les decia esta el protocolo NTP, y en linux existe un comando llamando ntp, para instalarlo sencillo:

#apt-get install ntp

y en el archivo /etc/ntp.conf buscamos la linea donde dice server, por default dice: server ntp.ubuntu.com (o depende de su distribución)

Podemos agregar algun servidor NTP que este cerca fisicamente de nuestra computadora.

# You do need to talk to an NTP server or two (or three).
server cronos.cenam.mx
server ntp.ubuntu.com

En este caso estamos utilizando el del Centro de Meteorología Nacional en México., en esta página podemos ver un listado de varios servidores, se recomienda utilizar el stratum 2 o stratum 1 http://kopernix.com/?q=ntp

Y listo! todo debe de funcionar al 100