"We are back" « oc.at

PHP --> Zahl zerteilen

XeroXs 21.05.2002 - 23:03 1083 7
Posts

XeroXs

Vereinsmitglied
doh
Avatar
Registered: Nov 2000
Location: Lieboch
Posts: 10343
tag..

folgendes...

Ich hab ne datenbank, da steht eine Zahl im Format YYYYMMDDHHMMSS drinnen

also z.b.

20021230245900

wie kann ich diese zahl am besten so zerteilen das ich eben stücke erhalte die folgendermaßen aufgeteilt sind..

4 Zahlen -> YYYY [2002]
2 Zahlen -> MM [12]
2 Zahlen -> DD [30]
2 Zahlen -> HH [24]
2 Zahlen -> MM [59]
2 Zahlen -> SS [00]

wichtig ist, ich wills nciht nach trennzeichen teilen, das wär ja kein problem.. sondern eben nach anzahl zeichen

Tex

got r00t?
Avatar
Registered: Aug 2000
Location: salzburg
Posts: 1844
mit substr geht das. falls das ding in der db ein int ist, musst du das ganze eventuell noch in einen string umwandeln :)

http://www.php.net/manual/en/function.substr.php

XeroXs

Vereinsmitglied
doh
Avatar
Registered: Nov 2000
Location: Lieboch
Posts: 10343
aaah
thx

Guest

Deleted User
Registered: n/a
Location:
Posts: n/a
warum speicherst das datum ned gleich gscheit in die db?
unix-timestamp rein und die gschicht rennt ...:eek:

bernhard

Little Overclocker
Registered: Feb 2001
Location: NÖ
Posts: 51
Diese Aufgabenstellung schreit förmlich nach einer regular expression:

Code:
<?

  $string="20021231111100";

  preg_match("/(\d{4})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/",$string,$regs);
  list(,$datum["jahr"],$datum["monat"],$datum["tag"],$datum["stunde"],$datum["minute"],$datum["sekunde"])=$regs;

  print_r($datum);

?>

Nein, "/(\d{4})(\d{2}){5}/" oder ähnliches ist hier leider nicht möglich. $regs würde nicht korrekt befüllt werden.

P.S.: Wie schon angeregt, macht es auch durchaus Sinn, nochmals das Tabellendesign der Datenbank zu überdenken...

Vir@s

Code Monkey
Registered: Nov 2000
Location: Wien
Posts: 730
Stimm den deRelict zu - würd des gleich gscheid in die DB schreiben.

Und übrigens gibt es eigene Datums Felder in "manchen" DB's - wo du dann des Datum gleich formatiert über den SQL query holen kannst!

Mfg, Vir@s

manalishi

tl;dr
Avatar
Registered: Feb 2001
Location: Feldkirch
Posts: 5977
so seh ich das auch. datetime und aus :)

XeroXs

Vereinsmitglied
doh
Avatar
Registered: Nov 2000
Location: Lieboch
Posts: 10343
brr da bekommt ma ja angst :p

ok.. folgendes

i brauch a einfaches script das prüft ob die letzte zeit die in der db eingetragen ist schon eine gewisse zeit überschritten ist.. wenn ja ein script ausführt (so oft wie das zeitinterval schon vorbei ist) und danach eine neue zeit in die datenbank schreibt..

und wenn ich da soa zahl reinschreib isses am einfachsten denk ich mir.. brauch ich nicht mit datumszeug herumtun...

Beispiel: 20020420201500 steht in der db... es ist der selbe tag aber 21:16 (inverval ist eine stunde)

er liest zeit aus prüft ob es größer als aktuellerstring+10000 ist, wenn ja führt er das script aus.

ist denk ich das einfachste für meinen zweck.. oda hat wer ne bessere/einfachere idee?
Bearbeitet von XeroXs am 24.05.2002, 20:05
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz