php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005-2

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 01.08.2005, 18:23  
Gast
 
Beiträge: n/a
Standard probleme mit date funktion

Hallo PHP Gemeinde,

aus einer Datenbank fetche ich eine Menge Datumsangaben in diesem
Format "2006-01-21 00:00:00.000".
Ich moechte das Datum jetzt gerne formatieren, z.B. das auf jeden
Fall die 0en fuer die Zeitangabe nicht mit angezeigt werden.
Natuerlich habe ich mir schon die date() Funktion angeschaut, komme aber nicht so recht klar damit.
date("d-F-Y",$date) gibt mir z.B. immer den 31.12.1969 zurueck.
Auch wenn ich mir ueber mktime() einen Timestamp aus meinen Daten erzeugen moechte, bekomme ich immer den selben Wert zurueck.
Kommt die date() Funktion mit meinem orig. Datumsformat nicht klar oder was mache ich falsch?
Vielen Dank fuer die Hilfe
Gruss
 
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 01.08.2005, 18:32  
Gast
 
Beiträge: n/a
Standard

Einfach mal die Doku lesen! Stichwort date_format, siehe http://dev.mysql.com/doc/mysql/de/da...functions.html

Gruß
phpfan
 
Alt 01.08.2005, 19:37  
Gast
 
Beiträge: n/a
Standard

Vielleicht haette ich dazuschreiben sollen das ich einen MSSQL Server befrage?
Im LOG fuer

SELECT id, name, message, DATE_FORMAT(date, '%D %M, %Y um %H:%i')

steht naemlich:

SQL error: [Microsoft][ODBC SQL Server Driver][SQL Server]'DATE_FORMAT' is not a recognized function name

Gibt es den keine Moeglichkeit das Datum nachtraeglich zu formatieren?

Danke nochmal
 
Alt 01.08.2005, 19:46  
Erfahrener Benutzer
 
Registriert seit: 05.07.2004
Beiträge: 578
WarrenFaith
WarrenFaith eine Nachricht über ICQ schicken
Standard

Ich bevorzuge Timestamps in Sekunden seit 01.01.1970 (kann mir bei gelegenheit mal wer sagen ob das echt "Timestamp im Unixformat" heißt?)
Mit diesem Timestamp kannst du jedes Format machen, dass du brauchst.
__________________
Developers-Guide.net
Senseless
WarrenFaith ist offline  
Alt 01.08.2005, 20:57  
Gast
 
Beiträge: n/a
Standard

Zitat:
2006-01-21 00:00:00.000
Kenn mich nicht mit MSSQL Server aus, und kann auch nicht sagen ob es dort eine Funktion schon gibt.
Ich hätte da vermutlich RegExp angeworfen und preg_replace() eingesetzt
Aber vieleicht gibt es ja noch eine einfache Möglichkeit.
 
Alt 01.08.2005, 20:59  
Erfahrener Benutzer
 
Registriert seit: 05.07.2004
Beiträge: 1.476
DiBo33
Standard

Beim MSSQL-Server gibt es leider keine äquivalente DATE_FORMAT() Funktion.

Ich würde die Umwandlung mittels PHP machen.
PHP-Code:
<?
function formatDate($date) {
  
// Datum und Zeit trennen
  
$date explode(" "$date);
  
// Zeit nur 'hh:mm'
  
$date[1] = substr($date[1],0,5);
  
// Datum aufsplitten
  
$date[0] = explode("-"$date[0]);
  
// Rückgabe 'dd.mm.yyyy um hh:mm'
  
return sprintf('%02d.%02d.%04d um %s',
    
$date[0][2], $date[0][1], $date[0][0], $date[1]);
}

echo 
formatDate("2006-01-21 00:00:00.000");
?>
DiBo33 ist offline  
Alt 01.08.2005, 21:57  
Gast
 
Beiträge: n/a
Standard

Dankeschoen fuer die Antworten.
Die Funktion tuts auch. Dachte nur das es da vielleicht etwas vorgefertigtes in PHP gibt mit denen sich ein Datum nachtraeglich bearbeiten laesst.

MfG
 
Alt 01.08.2005, 22:08  
Gast
 
Beiträge: n/a
Standard

Ich hätte vermutlich knallhart:

PHP-Code:
<?php

$TXT 
'2006-01-21 00:00:00.000';
echo 
preg_replace('~(\d{4})-(\d{2})-(\d{2})\s(.+)~''$3.$2.$1 $4'$TXT);

?>
benutzt, was bei echo "21.01.2006 00:00:00.000" ergibt.
 
Alt 02.08.2005, 18:51  
Erfahrener Benutzer
 
Registriert seit: 07.07.2005
Beiträge: 150
sysop
sysop eine Nachricht über ICQ schicken
Standard

$TXT = explode(' ','2006-01-21 00:00:00.000');
echo $TXT[1];
__________________
gruss sys
sysop 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
JS: Einführung - Javascript im Schichtenmodell nikosch Tutorials 4 11.04.2009 17:06
Probleme mit der Funktion - ImageTTFText() Hawk PHP Tipps 2008 1 01.10.2007 10:57
Probleme mit der Funktion - ImageTTFText() Hawk PHP Tipps 2008 9 26.09.2007 20:59
probleme mit max() funktion Crypi Datenbanken 4 09.01.2007 14:37
Probleme mit der mail() Funktion Kein Genie PHP Tipps 2006 2 22.10.2006 16:37
Funktion macht Probleme mokus PHP Tipps 2006 19 20.06.2006 03:16
Probleme mit einer Funktion ThaRider PHP Tipps 2006 3 06.04.2006 15:01
Probleme mit einer Funktion ThaRider PHP Tipps 2007 9 21.11.2005 21:54
Einfach Datepicker gesucht Cyberbob_at_tot PHP Tipps 2007 5 14.11.2005 09:10
[Erledigt] probleme mit Funktion PHP Tipps 2005-2 3 06.10.2005 23:53
(schnellere) Funktion zum Zusammenfassen von CSS PHP-Fortgeschrittene 21 08.08.2005 16:47
Bug in der date Funktion? MortakArtos PHP Tipps 2005-2 5 20.07.2005 11:24
date() Funktion zeigt falsches Datum c001130 PHP Tipps 2005 11 11.04.2005 21:14
Fragen zur Date Funktion PHP Tipps 2005 12 28.02.2005 16:07
Probleme seit register_globals = off Einstellung in ini Date pit62 PHP Tipps 2004 6 25.08.2004 16:52

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php datum nachträglich formatieren, datum nachträglich formatieren \datum nachträglich formatieren\, \[microsoft][odbc sql server driver][sql server]\'date_format\'\, reg exp d.f.y, date funktion, $datum nachträglich formatieren, php funktion date(\n\) funktioniert nicht, ms sql server gibt falsches datum aus date, php function date falsches jahr, www.date.de probleme

Alle Zeitangaben in WEZ +1. Es ist jetzt 09:42 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

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.