PHP --> Zahl zerteilen

Seite 1 von 1 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/php_gt_zahl_zerteilen_34994/page_1 - zur Vollversion wechseln!


XeroXs schrieb am 21.05.2002 um 23:03

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 schrieb am 21.05.2002 um 23:06

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 schrieb am 21.05.2002 um 23:23

aaah
thx


schrieb am 22.05.2002 um 00:10

warum speicherst das datum ned gleich gscheit in die db?
unix-timestamp rein und die gschicht rennt ...:eek:


bernhard schrieb am 22.05.2002 um 02:20

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 schrieb am 22.05.2002 um 18:04

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 schrieb am 22.05.2002 um 20:41

so seh ich das auch. datetime und aus :)


XeroXs schrieb am 24.05.2002 um 20:03

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?




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025