DownloadsPlus.php Datum umwandeln

Nikki2007

Grünschnabel
Hallo zusammen,

wir betreiben eine Homepage mit Postnuke. Dort haben wir den Block DownloadsPlus.php eingebunden.

Das Problem besteht in der Datum-Anzeige. Das Datum wird z.B. mit

2006-12-22 17:45:46

ausgegeben. Wir hätten aber gerne die Kurzform, also 22.12.2006

Die Datei sieht folgendermaßen aus:

PHP:
function blocks_DownloadsPlus_block($row)
{
pnModDBInfoLoad('CmodsDownload');
    list($dbconn) = pnDBGetConn();
    $pntable = pnDBGetTables();

    $url = explode('|', $row['url']);
    $url['0'] = "CmodsDownload";
                if (!authorised(0, 'Block_DownloadsPlus::', '::', ACCESS_OVERVIEW)) {
        return;
    }
    if ($url['1'] == '') {
        $url['1'] = 5;
    }
    if ($url['2'] == '') {
        $url['2'] = 5;
    }
    if ($url['3'] == '') {
        $url['3'] = 5;
    }

//Gets necessary table/column information
    $dltable = $pntable['cmodsdownload_downloads'];
    $dlcats = $pntable['cmodsdownload_categories'];

    $dlsubs = $pntable['cmodsdownload_subcategories'];
    $dlcolumn = &$pntable['cmodsdownload_downloads_column'];

    $votetable = $pntable['cmodsdownload_votedata'];
    $votecolumn = &$pntable['cmodsdownload_votedata_column'];

 if ($url['1'] > 0) {
    $result = mysql_query("SELECT $dlcolumn[lid], $dlcolumn[title], $dlcolumn[url], $dlcolumn[hits], $dlcolumn[date], $dlcolumn[submitter], $dlcolumn[name], $dlcolumn[cid], $dlcolumn[sid] FROM $dltable ORDER BY $dlcolumn[date] DESC LIMIT $url[1]");
$row['content'] .= '<center><table width="95%"><tr><td width="50%"><br><center><font class="pn-title">'.pnVarPrepForDisplay(_NEW_DL).'</font></center><br></td>';

 if ($url['2'] > 0) {
    $result0 = mysql_query("SELECT $dlcolumn[lid], $dlcolumn[cid], $dlcolumn[sid], $dlcolumn[title], $dlcolumn[url], $dlcolumn[hits], $dlcolumn[submitter], $dlcolumn[name] FROM $dltable WHERE ($dlcolumn[hits] > 0) ORDER BY $dlcolumn[hits] DESC LIMIT $url[2]");
    $row['content'] .= '<td width="50%"><br><center><font class="pn-title">'.pnVarPrepForDisplay(_TOP_DL).'</font></center><br></td></tr>';



$row['content'] .= '<tr><td width="50%">';
//Setting some variables
  while ($srow = mysql_fetch_array($result)) {
$catidnum = $srow['pn_cid'];
$categorytitle = $srow['pn_cid'];
$categorytitle = blocks_DownloadsPlus_CatNameFromCID($categorytitle);
$subidnum = $srow['pn_sid'];
$subcattitle = $srow['pn_sid'];
$subcattitle = blocks_DownloadsPlus_SubCatNameFromSID($subcattitle);

//What to do if the file is NOT in a sub category for Most Recent
if ($subidnum == "0") {



          $row['content'] .= '<br><img src="includes/blocks/dl-plus/hbullet.gif">&nbsp;<a href="index.php?name=CmodsDownload&amp;file=index&amp;req=&amp;cid='.$catnum.'"><font style="text-decoration:none"><font class="pn-normal">'.pnVarPrepForDisplay($srow['pn_title']).'</a></font></font>- <font size="1"> <font class="pn-normal">'.pnVarPrepForDisplay($srow['pn_date']).' Aufrufe</font>';

}
//What to do if the file IS in a subcategory for Most Recent
else {

          $row['content'] .= '<table><tr><td width="85%"><img src="includes/blocks/dl-plus/hbullet.gif">&nbsp;<a href="index.php?name=CmodsDownload&amp;file=index&amp;req=viewsdownload&amp;sid='.$subidnum.'"><font class="pn-normal"><font style="text-decoration:none">'.pnVarPrepForDisplay($srow['pn_title']).'</a></font></font></td><td width="15%"><font class="pn-normal">'.pnVarPrepForDisplay($srow['pn_date']).'</font></td></tr></table><hr>';

}

wir haben schon versucht die Variablen:

PHP:
$jahr = substr($pn_date,0,4);
$tag = substr($pn_date,8,2);
$monat = substr($pn_date,5,2);

Einzusetzen und die Ausgabe:

PHP:
'.pnVarPrepForDisplay($srow['pn_date']).'

durch

PHP:
'.pnVarPrepForDisplay($tag.$monat.$jahr).'

zu ersetzen, aber dann wird überhaupt nichts mehr angezeigt.

Ist der Gedankengang richtig? Wenn ja, an welche Stelle müssen die Variablen eingesetzt werden.

Wir haben schon alles mögliche probiert, erhalten aber nie das gewünschte Ergebenis und bitten daher um Eure Hilfe.

vielen Dank im Voraus

Gruß
Nikki
 
Also würde das ganze mit jahr, monat, tag wegfallen und anstelle von

PHP:
'.pnVarPrepForDisplay($srow['pn_date']).'

müsste dort

PHP:
'.pnVarPrepForDisplay($srow['DATE_FORMAT(pn_date, %d.%m.%y)']).'

stehen?

Ich hab so gut wie keine Ahnung von php und bisher nur durch ausprobieren die gewünschten Änderungen gemacht. :( Daher bräuchte ich von Euch den genauen Befehl.:confused:

Danke nochmal

Gruß
Nikki
 
Kurze Rückfrage, da ich derzeit vor dem gleichen Problem stehe: Hat es denn mit

'.pnVarPrepForDisplay($srow['DATE_FORMAT(pn_date, %d.%m.%y)']).'

geklappt oder muss die Date_Format- Anweisung schon in den SELECT-Befehl.
 
Hallo helaukoenig,

ich hab einfach vor /What do we do.... folgendes eingefügt:

PHP:
$jahr = substr($srow['pn_date'],2,2);
$tag = substr($srow['pn_date'],8,2);
$monat = substr($srow['pn_date'],5,2);


$srow['pn_date'] = "$tag.$monat.$jahr";

und dann in der Anzeige folgende Variable verwendet:

PHP:
'.pnVarPrepForDisplay($srow['pn_date']).'

Mein Fehler war vorher immer, dass ich srow nicht davor gesetzt hatte.

Gruß
Nikki
 
Zurück