Funktions-Problem [Anfänger]

Eiszwerg

Erfahrenes Mitglied
Moin moin,

nach längerer PHP-Abstinenz, bin ich gerade mal wieder dabei und scheiter sofort :suspekt:

Ich habe einen Timestamp, den ich in ein Datum und in eine Uhrzeit umwandeln möchte. Klappt mittels
PHP:
$datum      = getdate($data[termin_timestamp]);
    $tag        = $datum[mday];
    $monat      = $datum[mon];
    $jahr       = $datum[year];
    $stunden     = $datum[hours];
    $minuten    = $datum[minutes];
    $datum      = $tag.".".$monat.".".$jahr;
    $zeit       = $stunden.":".$minuten;
auch gut.
Allerdings schnappt er mir immer die führenden Nullen bei den einzelnen Werten weg.
Dies sollte nun eigtl. eine Funktion für mich erledigen.
Ich hatte mit überlegt, dass ich einfach den Wert von zB dem Monat an die Funktion übergebe, dort prüfe, ob der Wert kleiner 10 ist und wenn ja, dann eine 0 vor den Wert setze.
Nun scheitert es aber am Erstellen der Funktion bzw. an der Frage, ob eine Funktion für Tag, Monat, Jahr, Stunde und Minute reicht, oder ob ich für jeden Wert eine eigene Funktion benötige...

Hiiiiiiiiilfeeeee :D
 
Hat sich erledigt :-)

PHP:
function addZero($number)
{
if ($number<10)
    {
        $number="0".$number;
    }
return $number;
}

und dann

PHP:
$datum      = getdate($data[termin_timestamp]);
    $tag        = addZero($datum[mday]);
    $monat      = addZero($datum[mon]);
    $jahr       = $datum[year];
    $stunden    = addZero($datum[hours]);
    $minuten    = addZero($datum[minutes]);
    $datum      = $tag.".".$monat.".".$jahr;
    $zeit       = $stunden.":".$minuten;

Wenn's anders besser ginge, bitte melden ;-)
 
Die Funktion date() ist vielleicht praktischer für dich. Da kannst du im Grunde alle Formate so bekommen.

PHP:
$einheit = date("format", $zeit);

Beispiel für Monat mit führenden Nullen:

PHP:
$monat = date("m", $data[termin_timestamp]);

Für alle Formate schau mal hier:

http://de.php.net/manual/de/function.date.php

Das gesamte Datum kannst du dir so auch leicht zusammenstellen, indem du im Format mehrer Werte angibst, z.B. "d.m.Y" für ein Datum wie 07.04.2008.
 
Danke für die Tipps :-)

Habe nun ein Problem organisatorischer Art.

Und zwar mache ich einen kleinen Termin-Planer, welcher Zeilenweise die Tage ausgibt, an denen irgendein Benutzer einen Termin hat.
Natürlich kommt es auch mal vor, dass 2 oder mehr Benutzer am gleichen Tag einen Termin haben.
Ich möchte nun irgendwie das ganze clever visuell darstellen, weiss aber nicht wirklich wie.

Ich könnte mir vorstellen, das Datum als Überschrift zu verwenden und dann die speziellen Daten (Uhrzeit, Betreff, Langtext ect) darunter aufzulisten.
Allerdings weiß ich nicht, wie ich das code-mäßig hinbekomme.

Ich habe eine Tabelle 'termine' in welcher der timestamp, die nutzer-id und der restliche krempel drin steht.
Doch wie frage ich mySQL nun:
"Schau mal nach dem ersten Datum und zeig mir dann, welche Termine wir so haben. Dann nimmst Dir das nächste Datum und zeigst mir wieder, welche Termine da so anliegen. Aber bitte bitte, schmeiss das Datum nur einmal raus - als Überschrift..."

Jemand eine Idee?
 
Boese:
PHP:
$data[termin_timestamp]
Gut:
PHP:
$data['termin_timestamp']

Warum? Im oberen Beispiel ist termin_timestamp eine Konstante. Da diese aber wahrscheinlich nicht gesetzt ist ist PHP so kulant einen String zu vermuten. Bei vollem Error-Reporting gibt's dafuer eine Notice, entsprechend sollte man den String eben als solchen markieren, wie im zweiten Beispiel getan.

Falls es sich bei termin_timestamp jedoch doch um eine Konstante handeln sollte hab ich nichts gesagt. ;)
 
Hey Dennis,

danke für den Hinweis.
Allerdings galt das nur für den Teil:
PHP:
$datum      = date("d.m.Y", $data['termin_timestamp']);
$zeit       = date("H:i", $data['termin_timestamp']);

und nicht für die Verwendung in einer echo-Ausgabe wie zB:
PHP:
echo "<tr style=\"background-color:#DDD;\"><td style=\"text-align:right;\">$datum</td><td>$zeit</td><td>$data[termin_betreff]</td><td>$text</td></tr>";
oder?
Denn wenn ich dort Single-Quotes verwende, bekomm ich fiese Fehlermeldungen :-(
 
Mit single Quotes müsste es so aussehen:
PHP:
 echo '<tr style="background-color:#DDD;"><td style="text-align:right;">'.$datum.'</td><td>'.$zeit.'</td><td>'.$data[termin_betreff].'</td><td>'.$text.'</td></tr>';

So klappt das...

$data[termin_betreff] <-- Konstante, String oder Variable?

[EDIT]

Benutz nen Highlighter wie Notepad2, um mögliche fehlende Anfürhrungszeichen/Hochkommata zu finden!
 
DAS Problem kenn ich xD
Notepad2 ändert den Highlight-Modus immer, wenn ich die Datei in nem anderen Format abspeichere...
Normal speicher ich ja als *.php... Is auch feines highlighting xD
Aber wenn ich die dann als *.phps speichere, dann kommt dat nimma hinter her...

Zur Erläuterung:
Ich nutze zur Zeit noch Free-Space bei funpic.de, dort aufm Server werden Dateien mit der Endung phps automatisch als gehighlighteter Text ausgegeben!
 
Zurück