Vom Datum String etwas entfernen.

dg87

Erfahrenes Mitglied
Morgen,

von einer Datenbank hol ich mir ein Datumformat. Diese steht in einer Variable.
Jetzt steht die aber so drinne:

01 09 2007 0:00

is alles ok, nur will ich in dieser Variable das 0:00 null weg bringen, mit str_replace hab ich es nicht geschafft. Vielleicht weil es in der Datenbank als date format steht?
Leider sind dort die Daten nicht anders gespeichert, das heißt bei jedem Datum ist das 0:00 und das, aber nur das will ich von dieser Variable entfernen.
Hat einer ne idee?
Danke
 
Was ist das für ein komisches Date-Format? Es wird doch eigentlich in YYYY-MM-DD HH:MM:SS gespeichert. Dann könntest du den "String" an dem Leerzeichen zerlegen und hättest dann zwei Teile.
 
Moin,
von welchem Typ ist denn die Spalte, in der das Datum gespeichert wird? Für sowas würde sich ja einer der MySQL-eigenen Datums- und Zeittypen anbieten, je nach dem wofür die Spalte gedacht ist. Wenn die Zeit nie eine Rolle spielt und immer 0:00 ist, wäre der Typ DATE das Richtige, ist die Zeit nur an gegebener Stelle ohne Bedeutung, dann kannst du DATETIME als Spaltentyp auswählen und dich bei deiner MySQL-Anfrage der Datums- und Zeitfunktionen bedienen.
Beispielsweise so:
SQL:
SELECT
    DATE('2007-11-28 09:09:30') AS datum;

datum wäre in dem Fall dann '2007-11-28'. Möchtest du allerdings eine andere Formatierung des Datums, kannst du folgendes tun:

SQL:
SELECT
    DATE_FORMAT(DATE('2007-11-28 09:09:30'), '%d.%m.%Y') AS datum;

Dann wäre datum '28.11.2007'.

Ich hoffe, dass hilft dir weiter.

Gruß
Marvin
 
Du kannst das Format für die Ausgabe formatieren! Bei c# geht das z.B. so

string.Format("{0:d}",Wert) da kommt dann raus 28.11.2007

da gibts natürlich noch viel mehr! Siehe Google! Ich weiß jetzt nicht ob das auch geht wenn das Datum von der DB kommt aber denke schon.

EDIT: OK hat sich erledigt schätze mal Marvin´s Variante ist für Daten aus der DB eher geeignet :-)
 
das problem ist dass die formate nun mal so kommen und ich nichts machen kann weil ich keinen zugriff darauf habe, ich kann nur damit arbeiten.
sind irgendwo vom betrieb einfach so festgesetzt worden.

deswegen wäre es hilfreich den string zu zerlegen, so dass halt das 0:00 wegfällt.
aber wie?
 
PHP:
<?php
$datum_komplett="01 09 2007 0:00";
$datum_teil = explode(" ",$datum_komplett);

echo $datum_teil[0]."-".$datum_teil[1]."-".$datum_teil[2];

?>

Also so kommst du jetzt an das Datum ohne dem 0:00.

Hoffe es ist das was du brauchst ;)

grüße
crazy_down

Edit: Och nöö, nur 2. :P
 
genau so gehts.
danke dir, sehr nett.

also tut der ab dem 10 zeichen alles raushauen deswegen die zehn oder?

stimmt das zweite wäre auch ne nette Möglichkeit gewesen.

Nochmals Danke
 
Hi,

ich glaube, die einfachste Lösung wäre hier:

Code:
<?php
 $text = "01 09 2007 0:00";
 $zeit = explode(" ", $text); // in Einzelteile anhand von Leerzeichen zerlegen

 // als anhaltspunkt:
 $tag = $zeit[0];
 $monat = $zeit[1];
 $jahr = $zeit[2];
 $uhrzeit = $zeit[3];
?>

[Edit]: OOPS! hab die letzten beiden Posts übersehen sry
 
Zurück