Portal > Foren > PHP > PHP-Programmierung > timestamp umschreiben
Antwort
 
Themen-Optionen Thema durchsuchen
Alt 02.04.2008, 19:52 Nach oben    #1
Benutzer
 
Registriert seit: 26.03.2008
Ort: paderborn
Beiträge: 43
Standard timestamp umschreiben

hallo!

ich habe hier folgendes:

PHP-Code:
 $sql "SELECT
  s.player1score,
  s.player2score,
  s.date date,
  t1.id player1_id,
  t1.name player1_name,
  t1.elo player1_elo,
  t2.id player2_id,
  t2.name player2_name,
  t2.elo player2_elo
  FROM
  players t1
  INNER JOIN spiele s ON s.player1id=t1.id
    INNER JOIN players t2 ON t2.id=s.player2id;"
;

    
    
$result mysql_query($sql) OR die(mysql_error());
    if( 
mysql_num_rows($result) > 0) {
        
        
// For each result that we got from the Database
        
while ($line mysql_fetch_assoc($result))
        {
         
$spielvalues[] = $line;
         }
    } 
das problem ist jetzt das feld "date". darin steht ein unix timestamp und damit auch in dem array. da ich das array am liebsten komplett per smarty->assign an smarty uebergeben wuerde, wuerde ich gerne die timestamps in diesem array per date("d.m.Y H:i",$date) in was lesbares umwandeln. ich weiss nicht wie ich in jeder zeile der while schleife an das date drankomme. mein bester schuss war $spielvalues['0']['date'], da kriege ich aber nur das date vom ersten array.

dann hab ichs mal so probiert:

PHP-Code:
// For each result that we got from the Database
        
while ($line mysql_fetch_assoc($result))
        {
$spielvalues[] = $line;
        
$i 0;
        echo 
$spielvalues[$i]['date'];
        
$i $i 1;

da kriege ich aber immer denselben wert (den ersten)...

ich hoffe das problem ist erklaert und jemand hat rat.
__________________
gruss,
richy
richy ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 02.04.2008, 19:58 Nach oben    #2
Corvin Gröning
 
Benutzerbild von Corvin
 
Registriert seit: 19.03.2005
Ort: S-H | Flensburg
Beiträge: 459
Standard

PHP-Code:
        while ($line mysql_fetch_assoc($result))
        {
         
$line['date'] = date("d.m.Y H:i"$line['date']);
         
$spielvalues[] = $line;
         } 
Oder:
http://www.smarty.net/manual/en/lang...ate.format.php
__________________
Corvin ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 02.04.2008, 21:23 Nach oben    #3
Jann Hendrik Bekaan
 
Benutzerbild von Jann Hendrik
 
Registriert seit: 02.12.2004
Ort: Wildeshausen
Beiträge: 2.378
Standard

was spricht dagegen das gleich vom SQL-Server in das gewünschte Format zu ändern, sprich formatiert auszugeben?
__________________

Umfragen:
bitte beachten: Vorschläge für künftige Umfragen
Woher weißt du vom developers-guide?

Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Schreibe ein Tutorial und beschreibe, wie es geht, was nicht klappt, wo man aufpassen muss usw.
Danke!
Jann Hendrik ist gerade online  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 02.04.2008, 21:49 Nach oben    #4
Benutzer
 
Registriert seit: 26.03.2008
Ort: paderborn
Beiträge: 43
Standard

Zitat:
Zitat von Corvin Beitrag anzeigen
PHP-Code:
        while ($line mysql_fetch_assoc($result))
        {
         
$line['date'] = date("d.m.Y H:i"$line['date']);
         
$spielvalues[] = $line;
         } 
Oder:
http://www.smarty.net/manual/en/lang...ate.format.php
tja, einfach logisch tnx!

Zitat:
was spricht dagegen das gleich vom SQL-Server in das gewünschte Format zu ändern, sprich formatiert auszugeben?
eigentlich nichts. bekenne mich schuldig. bin halt als erstes ueber die unix timestamp gestolpert...
__________________
gruss,
richy
richy ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 02.04.2008, 21:52 Nach oben    #5
Corvin Gröning
 
Benutzerbild von Corvin
 
Registriert seit: 19.03.2005
Ort: S-H | Flensburg
Beiträge: 459
Standard

Zitat:
Zitat von Jann Hendrik Beitrag anzeigen
was spricht dagegen das gleich vom SQL-Server in das gewünschte Format zu ändern, sprich formatiert auszugeben?
Dazu müsste ich nochmal ins Handbuch schaun.
__________________
Corvin ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 03.04.2008, 08:57 Nach oben    #6
Jann Hendrik Bekaan
 
Benutzerbild von Jann Hendrik
 
Registriert seit: 02.12.2004
Ort: Wildeshausen
Beiträge: 2.378
Standard

dann sei hier nochmal die Seite erwähnt:
http://dev.mysql.com/doc/refman/5.1/...functions.html

Ist meine Lieblings-Seite auf dev.mysql.com

gibt es natürlich auch im Original:
http://dev.mysql.com/doc/refman/5.1/...functions.html
__________________

Umfragen:
bitte beachten: Vorschläge für künftige Umfragen
Woher weißt du vom developers-guide?

Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Schreibe ein Tutorial und beschreibe, wie es geht, was nicht klappt, wo man aufpassen muss usw.
Danke!
Jann Hendrik ist gerade online  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 03.04.2008, 10:58 Nach oben    #7
Corvin Gröning
 
Benutzerbild von Corvin
 
Registriert seit: 19.03.2005
Ort: S-H | Flensburg
Beiträge: 459
Standard

Anstatt eine Lösung von hier habe ich bisher, aus Faulheit, immer eine PHP-Lösung verwendet. Ist es aber nicht so, dass man allgemein sagen kann, dass die MySQL-Funktionen schneller sind, als die entsprechenden PHP-Funktionen und es sich so für mich lohnen würde, meine Skripte anzupassen?
__________________
Corvin ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 03.04.2008, 12:07 Nach oben    #8
Neuer Benutzer
 
Registriert seit: 03.04.2008
Ort: Paderborn
Beiträge: 7
Standard

Ich finds persönlich am schönsten, direkt als UNIX-Timestamp in die DB (hier: MySQL) zu speichern. Über SELECT UNIX_TIMESTAMP(spalte) kann ich dann wunderbar Funktionen wie date o.ä. direkt verwenden.

Zitat:
Zitat von http://dev.mysql.com/doc/refman/4.1/en/storage-requirements.html
Code:
Storage Requirements for Date and Time Types

Data Type > Storage Required
DATE > 3 bytes
TIME > 3 bytes
DATETIME > 8 bytes
TIMESTAMP > 4 bytes
YEAR > 1 byte

The storage requirements shown in the table arise from the way that MySQL
represents temporal values:

    *DATE: A three-byte integer packed as DD + MM×32 + YYYY×16×32
    *TIME: A three-byte integer packed as DD×24×3600 + HH×3600 + MM×60 + SS
    *DATETIME: Eight bytes:
          o A four-byte integer packed as YYYY×10000 + MM×100 + DD
          o A four-byte integer packed as HH×10000 + MM×100 + SS
    *TIMESTAMP: A four-byte integer representing seconds UTC since the
                epoch ('1970-01-01 00:00:00' UTC)
    *YEAR: A one-byte integer
Wenn du 'ne Menge an Einträgen in deiner DB hast, braucht Timestamp zum einen weniger Speicher als Datetime und zum anderen sind grösser und kleiner auf int-Spalten wesentlich schneller als auf string-Spalten, da diese intern zuerst in Zahlen konvertierten werden müssen.

Der (für mich) einzige Nachteil: UNIX-Timestamps sind nicht wirklich lesbar, wenn man mal direkt in die DB schaut.
b0mbe ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 03.04.2008, 12:09 Nach oben    #9
Bastian Fenske
 
Registriert seit: 04.01.2006
Ort: Kassel
Beiträge: 853
Standard

Zitat:
Zitat von Corvin Beitrag anzeigen
Anstatt eine Lösung von hier habe ich bisher, aus Faulheit, immer eine PHP-Lösung verwendet.

Ist ja mitunter auch Sinnvoll, denn der Zeitstempel gibt ja eine „absolute“ Zeit an und ausgeben willst du mitunter die Ortszeit einer bestimmten Zeitzone mit oder ohne DST-Verschiebung.

Macht wenig Sinn, diese Verschiebungen dann in einen formatierten String einzurechnen.

Zitat:
Zitat von b0mbe Beitrag anzeigen
IUNIX-Timestamps sind nicht wirklich lesbar
„Nicht wirklich“ ist gut!
Willkommen.



Basti

Geändert von Basti (03.04.2008 um 12:11 Uhr)
Basti ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
timestamp


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
PingBacks sind an
RefBacks sind aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
ActionListener umschreiben Z33di Eclipse 11 29.02.2008 19:40
Unterschied zwischen Format der MySQL-Typen DATETIME und TIMESTAMP Ben Datenbanken 9 20.08.2007 09:32
query umschreiben nibblas Datenbanken 5 04.07.2007 16:41
$_FILES brauchbar umschreiben Basti PHP-Programmierung 16 17.12.2006 21:23
Timestamp aus MySQL in Java weiterverarbeiten Uzimaster Datenbanken 2 27.11.2005 22:28


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:50 Uhr.


Powered by vBulletin® Version 3.7.4 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45