2012-04-04 13 views
1

Zunächst einmal vielen Dank, dass Sie sich die Zeit nehmen, dies zu untersuchen.Umwandlung Unix Zeitstempel vor dem Senden von JSON

Ich speichere das Datum in der Datenbank als Unix-Zeitstempel und wenn ich alle Informationen erhalten, mit:

 while($row = mysql_fetch_assoc($result)) { 
     $posts[] = $row; 
    } 
    /* return the posts in the JSON format */ 
    return json_encode($posts); 

Das Datum ist nur als Unix-Zeitstempel, wenn ich versuche, es zu erhalten mit dem folgenden:

var postHandler = function(postsJSON) { 
$.each(postsJSON,function(i,post) { 
alert(post.date); 
} 
} 

Gibt es eine Möglichkeit, es in lesbare Datum vor dem Senden von JSON zu konvertieren? Oder sogar danach?

Vielen Dank für Ihre Hilfe.

+0

Hat eine der Antworten Ihr Problem gelöst? – dragon

Antwort

2

Verwenden Sie das Objekt Date in JavaScript.

alert(new Date(post.date)) 

Hinweis: Es ist das Beste, es den ganzen Weg im Format UNIX Zeitpunkt vergehen, bis gemacht, denn:

  1. Es hält die Nutzlast gering, da Sie eine ganze Zahl und nicht eine Zeichenfolge sind zu übertragen .
  2. Sie können den Zeitstempel auf verschiedene Arten auf dem Client verwenden, ohne ihn erneut analysieren zu müssen. z.B. Date.now()/1000 - post.date gibt Ihnen die Anzahl der Sekunden, seit der Post erstellt wurde, und so weiter.
  3. UNIX-Zeitstempel ist nicht zeitzonensensitiv. Wenn es auf dem Client gerendert wird, wird es in der lokalen Zeitzone und im lokalen Format angezeigt. Wenn Sie es auf dem Server rendern, befindet es sich in der Zeitzone des Servers und verwendet die Gebietsschemaeinstellungen des Servers.
2

Sicher, von der PHP-Seite können Sie es wie dies tun könnte:

while($row = mysql_fetch_assoc($result)) { 
    $row['your_date_field'] = date('r', $row['your_date_field']); 
    $posts[] = $row; 
} 

(Sie können die Format-String zu date() wie Sie weitergegeben anpassen bitte, 'r' war nur ein einfacher Standard.)


Von der Seite Javascript, können Sie es wie folgt tun:

new Date(post.date); 

, die bei der Wiedergabe in einer Zeichenfolge als das Standarddatumsformat formatiert wird, oder Sie können andere Methoden auf dem Objekt Date verwenden, um andere Formate zu erhalten.


Welche Methode Sie verwenden, ist bis zu Ihnen, sondern als Drachen weist darauf hin, es clientseitige tun, ist oft schöner, da sie sowohl Daten reduziert übertragen und gibt Ihnen mehr Flexibilität, ohne eine Zeichenfolge zu analysieren zu haben.

+0

Ich möchte sie beide als beste Antwort wählen, aber leider kann ich nicht! Also danke für deine Antworten. Das hat mir geholfen, mein Problem zu lösen! :) – moonwalker

+1

Keine Sorge - es ist nicht wie ich brauche die rep. :) – Amber