standard example developer application php javascript time twitter parsing

php - example - Análisis de la API de Twitter Datestamp



twitter api timeline (5)

Estoy usando la API de Twitter para devolver una lista de actualizaciones de estado y las veces que fueron creadas. Devuelve la fecha de creación en el siguiente formato:

Viernes, 09 de abril, 12:53:54 +0000 2010

¿Cuál es la forma más sencilla (con PHP o Javascript) para formatear esto como el 09-04-2010?


Analizador cruzado, análisis de zonas horarias mediante JavaScript:

var s = "Fri Apr 09 12:53:54 +0000 2010"; var date = new Date( s.replace(/^/w+ (/w+) (/d+) ([/d:]+) /+0000 (/d+)$/, "$1 $2 $4 $3 UTC"));

Probado en IE, Firefox, Safari, Chrome y Opera.


Aquí está el formato de fecha para la API de Twitter:

Sat Jan 19 20:38:06 +0000 2013 "EEE MMM dd HH:mm:ss Z yyyy"


JavaScript puede analizar esa fecha si elimina el +0000 de la cadena:

var dStr = "Fri Apr 09 12:53:54 +0000 2010"; dStr = dStr.replace("+0000 ", "") + " UTC"; var d = new Date(dStr);

Chrome -y sospecho que algunos otros navegadores que no son IE- pueden analizarlo con el +0000 presente en la cadena, pero también puede eliminarlo para interoperabilidad.

PHP puede analizar la fecha con strtotime:

strtotime("Fri Apr 09 12:53:54 +0000 2010");


Javascript. Como @Andy señaló, va a ser una perra cuando se trata de IE. Por lo tanto, es mejor confiar en una biblioteca que lo haga de manera consistente. DateJS parece una buena biblioteca.

Una vez que se agrega la biblioteca, la analizará y formateará como:

var date = Date.parse("Fri Apr 09 12:53:54 +0000 2010"); var formatted = date.toString("dd-MM-yyyy");

En PHP puede usar las funciones de fecha o la clase DateTime para hacer lo mismo (disponible desde PHP 5.2.0):

$date = new DateTime("Fri Apr 09 12:53:54 +0000 2010"); echo $date->format("d-m-Y"); // 09-04-2010


strtotime("dateString"); lo pone en el formato de fecha PHP nativo, luego puede trabajar con la función date() para imprimirlo como le gustaría.