trasformare una data in formato RFC 2822

  • Creatore Discussione Creatore Discussione LaKanka
  • Data di inizio Data di inizio

LaKanka

Utente Attivo
29 Ago 2008
166
0
0
Ciao a tutti!
Nel mio DB ho salvato delle date in formato date("Y-m-d") ma ora ho la necessità di averle nel formato RFC 2822 (es:Fri, 01 May 2009 00:00:00 +0000)

Ho cercato in rete ma non ho trovato nulla che mi potesse aiutare.....
 
A Questo link c'è il processo inverso:
http://www.davidonzo.com/post/1002/php-convertire-data-da-formato-rfc-2822-ad-output-personalizzato

che sfrutta la funzione strtotime:
http://it2.php.net/strtotime

Vedi inolre questo che credo sia utile:
http://it2.php.net/strftime

Questo sotto invece è un esempio di conversione da ISO 8601 a
RFC 2822
http://forums.devnetwork.net/viewtopic.php?f=50&t=66103

Altri esempi:
http://stackoverflow.com/questions/725510/rfc-2822-date-formatting-in-php

Devi solo "giocarci" un pò..

Ciro
 
ciao
mi intrometto per un consiglio

io salvo tutte le date in formato timestamp poi le trasformo nel modo che voglio quando le devo visualizzare con
date("pattern", $data_time_stamp)

questo perchè è molto più facile poi fare ORDER BY data

l'ordinamento delle date sotto è evidentemente errato:

Fri, 30 May 2009 00:00:00 +0000
Mon, 01 May 2009 00:00:00 +0000
Sun, 15 May 2009 00:00:00 +0000

ma questo è quello che risulta se le date nel db sono di questo formato
 
Questa volta non ho order by da visualizzare ma mi serve per creare un xml feed. Più che giocare mi sembra di impazzire perchè io e le date non siamo mai andate d'accordo!

Ho messaggi salvati dall'inizio dell'anno scorso con questo formato date("Y-m-d").

Ho solo bisogno di visualizzarle in RFC 2822...

La maggior parte dei link che mi hai mandato li avevo già trovati senza capirci molto...
 
secondo me ti conviene estrarre la data che hai in formato date("Y-m-d"), trasformarla in time stamp

$data= estratta da db
$time_stamp=strtotime($data);

e trasformarla in formato RFC 2822 con

$data_RFC_2822 = date("Y-m-d r",$time_stamp);

è il carattere r che trasforma la data in formato RFC 2822 e la rimetti nel db, attanta alla lunghezza del campo


guarda questo link
http://it2.php.net/manual/en/function.date.php

che riporta (verso il basso)

Full Date/Time --- ---
c ISO 8601 date (added in PHP 5) 2004-02-12T15:19:21+00:00
r » RFC 2822 formatted date Example: Thu, 21 Dec 2000 16:01:07 +0200
U Seconds since the Unix Epoch (January 1 1970 00:00:00 GMT) See also time()

p.s.
non so se è corretto mettere r come l'ho messo io, al massimo fai delle prove
 
$data_RFC_2822 = date("r",$time_stamp);

così è perfetto!!!!
Avevo trovato il modo di visualizzare la data odierna in RFC 2822 (echo date("r")), ma mi mancava il passaggio strtotime() e non credevo che bastasse la semplice "r" per trasformare poi la mia data in RFC 2822!!!

Hai il dono di far sembrare queste cose davvero semplici!! ;)
 

Discussioni simili