Zur Navigation

Datum bei sql formatieren

1 uwe

Hallo,
ich habe in der Datenbank 2 Felder mit einer Tageszahl zb. 231.
Diese Tageszahl will ich bei der Ausgabe als Datum z.B
01.Sep.
ausgeben.
Es kommt aber jetzt die Fehlermeldung
Ungültige Abfrage: FUNCTION xxx.date2rechnen does not exist

soweit bin ich jetzt:
<?php
function date2rechnen($numberOfDays) {
$offset = $numberOfDays * 86400;
$calculatedDate = $baseDate + $offset;
return date( "d.mmm" , $calculatedDate );
}
?>


<?php
require_once ('konfiguration.php');

$sql = 'SELECT date2rechnen(season_start) as von, date2rechnen(season_end) as bis, p0 as preis FROM price_seas order by season_start';



$db_erg = mysql_query( $sql );
if ( ! $db_erg )
{
    die('Ungültige Abfrage: ' . mysql_error());
}

echo '<table border="1">';
 echo ' <colgroup><col width="50"><col width="100"><col width="100"><col width="100"></colgroup>';

 echo "  <tr><th>von</th><th>bis</th><th>Preis</th></tr>";
while ($zeile = mysql_fetch_array( $db_erg, MYSQL_ASSOC))
{
    echo "<tr>";
    echo "<td>". $zeile['von'] . "</td>";
    echo "<td>". $zeile['bis'] . "</td>";
    echo "<td>". $zeile['preis'] . "</td>";

    echo "</tr>";
}
echo "</table>";
mysql_free_result( $db_erg );
?>
Gruss
Uwe

12.04.2012 21:14

2 Jörg

Du definierst die Funktion date2rechnen() in PHP, verwendest sie aber in SQL, welches diese Funktion nicht kennen kann.

Du kannst diese Funktion aber ja in der Schleife anwenden:

    echo "<td>". date2rechnen($zeile['season_end']) . "</td>";

12.04.2012 21:33 | geändert: 12.04.2012 21:33

3 uwe

Hallo Jörg,
danke für den Hinweis.
Es hapert jetzt noch an der Datumsformatierung.

Es wird jetzt
02.010101
angezeigt.
Es soll aber
2.Feb.
dargestellt werden.
<?php

function date2rechnen($numberOfDays) {
$baseDate  = mktime(0, 0, 0, 1, 1, date("Y"));
$offset = $numberOfDays * 86400;
$calculatedDate = $baseDate + $offset;
return date( "d.mmm" , $calculatedDate );
}
?>
Gruss
Uwe

15.04.2012 07:33

4 Jörg

Es wird jetzt
02.010101
angezeigt.

Ja, das entspricht deinem Muster "d.mmm". Die Formatzeichen für date() sind im PHP-Manual aufgeschlüsselt:

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

Es soll aber
2.Feb.
dargestellt werden.

Dem sollte ein "j.M." entsprechen

15.04.2012 09:10 | geändert: 15.04.2012 09:13

5 uwe

Hallo Jörg,
danke, jetzt musste noch der Deutsche Monat her.
Ich habe es so gelöst:
<?php

function date2rechnen($numberOfDays) {
if ( $numberOfDays == 1 ) { $numberOfDays = 0 ;}
$baseDate  = mktime(0, 0, 0, 1, 1, date("Y"));
$offset = $numberOfDays * 86400;
$calculatedDate = ($baseDate + $offset);
$monatsnamen = array(
        "01" => "Jan",
        "02" => "Feb",
        "03" => "Mäz",
        "04" => "Apr",
        "05" => "Mai",
        "06" => "Jun",
        "07" => "Jul",
        "08" => "Aug",
        "09" => "Sept",
        "10" => "Okt",
        "11" => "Nov",
        "12" => "Dez");

return date( 'd. ' , $calculatedDate ).$monatsnamen[date('m', $calculatedDate)];

}
?>
Gruss
Uwe

15.04.2012 11:40

Beitrag schreiben (als Gast)

Beim Verfassen des Beitrages bitte die Forenregeln beachten.





[BBCode-Hilfe]