php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2009

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 10.10.2009, 10:50  
GN
Erfahrener Benutzer
 
Registriert seit: 17.01.2004
Beiträge: 155
GN zeigte ein beschämendes Verhalten in der Vergangenheit
Standard Datumsformate umwandeln

Hallo,

ich habe in der Datenbank das Datumsformat (DD.MM.YYYY, DD/MM/YYYY) als String gespeichert.
Nun habe ich mir eine kleine Funktion geschrieben, die aber leider nichts anzeigt!?
PHP-Code:
  function getDateformat ($value)
  {
      global 
$value;
      
      
$pattern '^([0-9]{4})-([0-9]{2})-([0-9]{2})$';
      
      if (
$value)
      {
          
// in Format (DD.MM.YYYY) umwandeln
          
if ($value 'DD.MM.YYYY')
          {
              return 
ereg_replace ($pattern'\3.\2.\1'$value);;
          }
          
// in Format (DD/MM/YYYY) umwandeln
          
else if ($value 'DD/MM/YYYY')
          {
              return 
ereg_replace ($pattern'\3/\2/\1'$value);
          }
          
// Standard Datenbank-Format (YYYY-MM-DD)
          
else
          {
              return 
$value;
          }
      }
      else
      {
          return 
false;
      }
  }
  
  echo 
getDateformat ('DD/MM/YYYY'); 

Gruß GN
GN ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 10.10.2009, 10:54  
Erfahrener Benutzer
 
Benutzerbild von Ti-Systems
 
Registriert seit: 06.10.2008
Beiträge: 240
PHP-Kenntnisse:
Fortgeschritten
Ti-Systems befindet sich auf einem aufstrebenden Ast
Ti-Systems eine Nachricht über ICQ schicken Ti-Systems eine Nachricht über MSN schicken
Standard

Hallo,

Warum speicherst du die Daten in diesen Formaten ?!
Wäre es nicht sinnvoller den Timestamp zu speichern, denn mit Hilfe dessen kannst du nachher ganz einfach diese beiden Formate erzeugen!
Was du hier machst bezeichnet man als "überflüssig"...

mfg Timo
Ti-Systems ist offline  
Alt 10.10.2009, 11:12  
GN
Erfahrener Benutzer
 
Registriert seit: 17.01.2004
Beiträge: 155
GN zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

Zitat:
Zitat von Ti-Systems Beitrag anzeigen
Warum speicherst du die Daten in diesen Formaten ?!
Das ganze soll eine Calendar-App werden, wo Benutzer ihr favorisiertes Format speichern können, was dann so ausgegeben wird.

Gruß GN
GN ist offline  
Alt 10.10.2009, 11:21  
Erfahrener Benutzer
 
Benutzerbild von Ti-Systems
 
Registriert seit: 06.10.2008
Beiträge: 240
PHP-Kenntnisse:
Fortgeschritten
Ti-Systems befindet sich auf einem aufstrebenden Ast
Ti-Systems eine Nachricht über ICQ schicken Ti-Systems eine Nachricht über MSN schicken
Standard

Hallo,

Diese Zeile ist Fehlerhaft:
PHP-Code:
return ereg_replace ($pattern'\3.\2.\1'$value);; 
Wegen den zwei Semikolons am Ende.

mfg Timo
Ti-Systems ist offline  
Alt 10.10.2009, 11:23  
Erfahrener Benutzer
 
Registriert seit: 07.06.2008
Beiträge: 992
PHP-Kenntnisse:
Fortgeschritten
Frank befindet sich auf einem aufstrebenden Ast
Frank eine Nachricht über ICQ schicken Frank eine Nachricht über MSN schicken Frank eine Nachricht über Yahoo! schicken
Standard

In den If Abfragen fehlt ein =. Es muss x == y lauten. In deinen If Abfragen hast du eine Zuweisung (x = y).
Und wozu das global $value ?! Der Wert $value ist in deiner Funktion sowieso verfügbar, da er als Parameter übergeben wurde.
__________________
Frank ist offline  
Alt 10.10.2009, 11:28  
GN
Erfahrener Benutzer
 
Registriert seit: 17.01.2004
Beiträge: 155
GN zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

Hi,

okay, das zweite Semikolon habe ich entfernt, aber aus dem Rest werde ich nicht schlau.
Habe mal $value = 'DD.MM.YYYY' ausgeklammert und die else if als if genommen, da gibt er aber auch nichts aus?

Gruß GN
GN ist offline  
Alt 10.10.2009, 11:47  
GN
Erfahrener Benutzer
 
Registriert seit: 17.01.2004
Beiträge: 155
GN zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

Kann es sein, dass ich zwei Werte übergeben muss?
Einmal das Datum ansich und einmal das Format???

GN
GN ist offline  
Alt 10.10.2009, 11:58  
Erfahrener Benutzer
 
Benutzerbild von Ti-Systems
 
Registriert seit: 06.10.2008
Beiträge: 240
PHP-Kenntnisse:
Fortgeschritten
Ti-Systems befindet sich auf einem aufstrebenden Ast
Ti-Systems eine Nachricht über ICQ schicken Ti-Systems eine Nachricht über MSN schicken
Standard

Hallo,

Das mit dem global haste kapiert oder ?!
Wenn nein:
Du musst die Variable $value nicht globalisieren, da sie ja per Parameter übergeben wird.
Und in der If machst du im Kopf eine Zuweisung, welche immer als True gewertet wird:
PHP-Code:
if ($value 'DD.MM.YYYY'
Hier weisst du der Variable $value den Wert DD.MM.YYYY zu.
Aber du willst $value mit DD.MM.YYYY vergleichen nehme ich mal an.
Und um zwei Werte miteinander zu vergleichen gibt es den ==-Operator.
Die If muss also so lauten:
PHP-Code:
if ($value =='DD.MM.YYYY'
mfg Timo
Ti-Systems ist offline  
Alt 10.10.2009, 12:01  
Moderator
 
Benutzerbild von Chriz
 
Registriert seit: 11.05.2008
Beiträge: 6.269
Chriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer AnblickChriz ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von GN Beitrag anzeigen
Das ganze soll eine Calendar-App werden, wo Benutzer ihr favorisiertes Format speichern können, was dann so ausgegeben wird.

Gruß GN
Ein Datum in der Datenbank muss als DATETIME gespeichert werden, andernfalls kannst du nicht mehr sortieren, damit rechnen oder es formatiert ausgeben.
Chriz ist gerade online  
Alt 10.10.2009, 12:08  
Erfahrener Benutzer
 
Benutzerbild von Ti-Systems
 
Registriert seit: 06.10.2008
Beiträge: 240
PHP-Kenntnisse:
Fortgeschritten
Ti-Systems befindet sich auf einem aufstrebenden Ast
Ti-Systems eine Nachricht über ICQ schicken Ti-Systems eine Nachricht über MSN schicken
Standard

Hallo,

Und in deinem Code versuchst du so zu replacen:
PHP-Code:
return ereg_replace ($pattern'\3.\2.\1'$value); 
Dies ist aber falsch, weil du ersetzt Zeichen, wenn du zwei Backslashes vor die jeweilige Ziffer setzt und nicht nur einen. Es sollte also so aussehen:
PHP-Code:
return ereg_replace ($pattern'\\3.\\2.\\1'$value); 
Und zudem solltest du anstelle von ereg_replace besser preg_replace verwenden, da sie einfach schneller ist:
Zitat:
Tipp Die Funktion preg_replace(), die eine zu Perl kompatible Syntax regulärer Ausdrücke verwendet, ist häufig die schnellere Alternative zu ereg_replace().
Quelle: PHP Manual

mfg Timo
Ti-Systems ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

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 are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Wie kann ich mein EXCEL Datei in ein SQL umwandeln test022 PHP Tipps 2004 5 29.05.2009 09:09
doc in pdf umwandeln und dann das pdf auslesen... Robinrobin PHP Tipps 2009 6 07.05.2009 14:15
Array umwandeln von zwei zu mehrdimensional erselbst PHP Tipps 2009 6 02.04.2009 23:30
[Erledigt] Zahl (alias) in Schleife als definiertes Wort umwandeln fulltilt PHP Tipps 2009 8 15.03.2009 16:47
HTML-Code umwandeln mokus PHP Tipps 2008 5 20.03.2008 17:24
Bilddatei beim Upload automatisch in jpg umwandeln Plague PHP Tipps 2007 5 02.05.2007 11:48
ascii zeichen umwandeln rooomka HTML, Usability und Barrierefreiheit 1 28.04.2006 19:45
EBCDIC in ASCII umwandeln imported_martin PHP Tipps 2006 2 08.04.2006 16:41
[Erledigt] Umwandeln in HTML-Entities ohne Umwandeln der TAGS PHP-Fortgeschrittene 4 26.12.2005 16:17
dd.mm.yyyy umwandeln in yyyy-mm-dd ? Unbekanntes_Pferd Datenbanken 6 07.06.2005 12:15
PDF in html umwandeln JEGO PHP Tipps 2005 2 12.04.2005 15:10
[Erledigt] Pixeldatei in Vektordatei umwandeln? Off-Topic Diskussionen 10 29.01.2005 15:39
preg_replace zum umwandeln von URLs PHP-Fortgeschrittene 5 15.09.2004 10:35
in Datum umwandeln PHP Tipps 2004 4 01.09.2004 22:56

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php preg_replace(); yyyy-mm-dd in dd.mm.yyyy, ddmmyy umwandeln, datumsformate, php datum in buchstaben umwandeln, value-of format=\dd.mm.yyyy\, excel datum format umwandeln in php, phpexcel getdateformat, datum ddddmmyy umwandeln excel yymmdddd, datumsformat umwandeln php excel, datum umwandeln php ddmmjjjj, datum yyyddmm umwandeln, yyyy-mm-dd umwandeln php, http://www.php.de/php-einsteiger/59867-datumsformate-umwandeln.html, pdf umwandlung datum falsch

Alle Zeitangaben in WEZ +2. Es ist jetzt 19:59 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum