Kürzung eines String innerhal eines Array

Hallo Leute,

ich bastele mir gerade eine TV-zeitschrift fürs Webfront.
Die TV Daten habe ich in einer MySQl Datenbank. Ich möchte nun den String des Sendebeginns kürzen, das dort nur die Uhrzeit steht.
Aus der Datenbank kommt zb: 2010-12-23 05:50:00, ich möchte stattdessen 05:50 stehen haben. meine Abfrage sieht folgendermassen aus:

<?php
include ("db.php");
print "<table border=0 width=1200>";
print "<tr><th align=left width=150><font size=+1>Beginn:</font></th><th align=left width=350><font size=+1>Titel:</font></th><th align=left width=150><font size=+1>Kategorie:</font><th align=left><font size=+1>Beschreibung:</font>";

$z = mysql_query("select SenderKennung AS Sender, Beginn, Titel, Kategorietext AS Kategorie, KurzBeschreibung As Inhalt from sendungen where SenderKennung='ZDF' AND Beginn between CURRENT_DATE()-INTERVAL 0 DAY and CURRENT_DATE()+INTERVAL 1 DAY"); //Auswahl ausführen und Ergebnis in Variable z speichern 
while($unter=mysql_fetch_array($z)) //nun wird das Ergebnis welches in $z steht in ein Array $unter umgewandelt und so lange durchlaufen wie Zeilen die Abfrage ausgibt. 

{
echo "<tr><th align=left valign=top>$unter[Beginn]</th><th align=left valign=top>$unter[Titel]</th><th align=left valign=top>$unter[Kategorie]</th><th align=left valign=top>$unter[Inhalt]</th>"; //da $unter nun ein Array ist, muss es dementsprechend mit Feldbezeichungen ausgegeben werden 
} 

mysql_close(); //Verbindung zum Server schließen  

print "</table>";
?>

( hab ich so im netz gefunden )
Nun möchte ich also $unter[Beginn] anpassen, kriege es aber nicht hin.

Weiss jemand Rat?

Loerdy

Wenn Du das komplette Datum mit PHP: strtotime - Manual in eine Unix-Timestamp umwandelst, kannst Du mit PHP: date - Manual wunderbar formatieren:

echo date('d.m.y H:i', strtotime('2010-12-23 05:50:00')); // Ausgabe: 23.12.10 05:50

oder auch so:

$beginn=preg_replace("/.*\s(\d\d:\d\d).*/","$1",$unter['Beginn']);

So wie es geschrieben ist, setzt es führende Nullen bei der Uhrzeit voraus, aber das sollte bei mysql im Normalfall passen.

Tommi

Hurra!!!

Danke Schön.

PS:

Woher weiss man sowas?? :slight_smile:

uralt, ich weiß !
aber, wie kann ich am geschicktesten die Strings im Array abschneiden um die VariNr nackisch zu erhalten
Ergebnis sollte also 12345 sein

$start=16;
$length=5;

$all = glob( 'C:/IP-Symcon/db/*.csv' );

$delimiter = array("C:/IP-Symcon/db/",".day.csv",".hour.csv",".month.csv",".week.csv",".year.csv");
$allarray  = array($all);

print_r($delimiter);
print_r($allarray);

Array
(
[0] => C:/IP-Symcon/db/
[1] => .day.csv
[2] => .hour.csv
[3] => .month.csv
[4] => .week.csv
[5] => .year.csv
)
Array
(
[0] => Array
(
[0] => C:/IP-Symcon/db/10292.day.csv
[1] => C:/IP-Symcon/db/10292.hour.csv
[2] => C:/IP-Symcon/db/10292.month.csv
[3] => C:/IP-Symcon/db/10292.week.csv
[4] => C:/IP-Symcon/db/10292.year.csv
[5] => C:/IP-Symcon/db/10300.day.csv

zumindest funzen die Arrays
natürlich hab ich stundenlang php-Manuals gewälzt und alles ausprobiert aber zum Laufen hab ich es nicht bekommen

Ich würde gar nicht den String selbst zerlegen, sondern pathinfo dafür nutzen.
PHP: pathinfo - Manual
Michael

hört sich gut an, werd ich mal ausprobieren
Danke

Wenn du dann den statischen String C:/IP-Symcon noch gehen das hier ersetzt, kann dir auch bei einem Platformwechsel nichts passieren :wink:
IPS_GetKernelDir — IP-Symcon :: Automatisierungssoftware
Michael

hab jetzt mal pathinfo und basename probiert, verträgt sich aber nicht mit dem array, will immer einen string

<?
$all = glob( 'C:/IP-Symcon/db/*' );
$file = array($all);
print_r($file); 
echo('file = '.basename ($all)); 
?>

Ja klar, musst es ja für jede Datei einzeln aufrufen.
foreach ($all as $file)
{
echo pathinfo($file, PATHINFO_FILENAME).PHP_EOL;
}
Michael