Hi,
habe vor, ein Datum aus der Datenbank vom Englischen Format ins Deutsche zu übertragen.
das kommt mir schon spanisch vor. ;-)
Nein, im Ernst: Ein Datumswert sollte in der Datenbank eigentlich sprach- und formatneutral gespeichert sein, und erst bei der Abfrage im gewünschten Format aufbereitet werden - und zwar durch die Datenbank selbst.
»» $datetime="2009-08-01 14:50:33";
> $s = sscanf($datetime, "%04d-%02d-%02d %02d:%02d:%02d");
> print_r($s);
Doch in der Ausgabe wird deutlich, dass die Daten, die z.B. 09 heißen, zu 9 abgeändert werden, obwohl ich die Längenangabe "2" vermerkt habe.
Warum wundert dich das? Du bekommst von sscanf() ein Array aus Zahlenwerten zurück. Wie Zahlenwerte dargestellt werden, entscheidet erst die Ausgabe, in diesem Fall print_r(). Natürlich gibt dir print_r() z.B. den Wert 9 aus und nicht "09", denn die Information, wie diese Zahlenwerte in dem String vorlagen, der von sscanf geparst wurde, ist längst verloren.
Nebenbei wäre die Angabe 09 in einem Zahlen-Kontext auch sowohl in PHP als auch in C syntaktisch falsch. Denn eine führende Null bedeutet Oktal-Schreibweise, und im oktalen System gibt es keine Ziffer 9.
Da habe ich bestimmt einen Denkfehler drin. Ich finde ihn nur nicht.
Jetzt besser?
So long,
Martin
You say, it cannot be love if it isn't for ever.
But let me tell you: Sometimes, a single scene can be more to remember than the whole play.