[PHP] Pasar segundos a fecha

willy_chaos

Hola a todos ultimamente estoy bastante desconectado de programacion y hoy estoy intentando hacer un RSS mediante php.

El caso es que quiero ponerle al RSS una etiqueta de actualizado, para que se pueda ordenar por fecha en los lectores RSS y que si hay un comentario nuevo pues esa entrada se posicione la primera.

Vendria a ser como una especie de Spy pero solo en RSS.

La cosa es que en la base de datos, el tiempo que obtengo es en segundos.

Un ejemplo es 1370878654 que equivale a hoy sobre las 16:30 pero me gustaria que me lo mostrara así 2013-06-10T14:38:13+00:00 que es el formato que veo en algunos RSS.

He estado mirando por Google pero lo que encuentro es para pasar de formato fecha 10-06-2013 a segundos (yo quiero lo contrario) y tambien he encontrado lo tipico de "hace 1 minuto"

A ver si teneis vosotros por ahi alguna función que ya lo haga.

NandDarkness

No digo más

http://php.net/manual/es/function.date.php

Busca por los lados, seguro que está porque lo hice yo el otro día.

RaymaN

date('r', strtotime($fecha));

1 respuesta
willy_chaos

#3 He probado con lo que me has puesto, pero me devuelve para tdoos lo mismo.

Thu, 01 Jan 1970 01:00:00

function seg2tiempo($segundos){ 
	return date('r', strtotime($segundos));
}

Y lo llamo de esta forma

while ( $row = mysql_fetch_array($res, MYSQL_ASSOC) ){
					echo "<item>";
					echo "<title>".utf8_encode($row['topic_title'])."</title>";
					echo "<author><name><![CDATA[".$row['topic_last_poster_name']."]]></name></author>";
					echo "<updated>".seg2tiempo($row['topic_last_post_time'])."</updated>";
					echo "</item>";
				}
1 respuesta
Cobre

el constructor para pasarle un parametro UNIX creo que es @,
prueba algo como:
fecha = date('@1370878654' ) ;
fecha->format('Y-m-d h:m:i);

RaymaN

#4 si te devuelve siempre lo mismo es que $segundos es 0 o inválido.

1 respuesta
willy_chaos

#6 Pues ha sido quitarle el strtotime y ya hacermelo bien. Supongo que eso provocaba fallo.

Al final ha quedado asi.

function seg2tiempo($segundos){ 
	return date('r', $segundos);
}

Ahora ya solo me queda ordenarlo y ponerlo a gusto. Merci!!!

1 respuesta
RaymaN

#7 no recordaba que ya pasabas la fecha en formato unix, el strtotime no hace falta en ese caso xD

Usuarios habituales

  • RaymaN
  • willy_chaos
  • Cobre
  • NandDarkness