Avatar billede webbygger Nybegynder
10. november 2008 - 16:59 Der er 6 kommentarer og
2 løsninger

Konventering af dato

Jeg er ved at hacke et module, det viser desværre ikke datoen - langt om længe har jeg fået den til at vise datoen og den ser eks. 2008-11-09 18:09:21 (sådan bliver den indsat til databasen) - men jeg ønsker den vist sådan her 09-11-2008 18:09!

Jeg har prøvet utal af forskellige forsøg på at konventer dato, men jeg har desværre ikke den store viden angående PHP!

Udtræksiden ser således ud:

class modJomLatestHelper
{
    function getList(&$params)
    {
        global $mainframe;

        $db            =& JFactory::getDBO();
        $user        =& JFactory::getUser();
        $userId    = (int) $user->get('id');

        $count            = (int) $params->get('count', 5);
        $displayLen = (int) $params->get('displayLen', 50);
        $titleLen  = (int) $params->get('titleLen', 50);

        $query = "SELECT a.id, a.contentid, a.comment, a.name, a.date, b.title, b.sectionid, b.title,
            CASE WHEN CHAR_LENGTH(b.alias) THEN CONCAT_WS(':', b.id, b.alias) ELSE b.id END as slug,
            CASE WHEN CHAR_LENGTH(cc.alias) THEN CONCAT_WS(':', cc.id, cc.alias) ELSE cc.id END as catslug
            FROM #__jomcomment as a , #__content as b
            INNER JOIN #__categories AS cc ON cc.id = b.catid
            INNER JOIN #__sections AS s ON s.id = b.sectionid
            WHERE a.published=1 AND b.id=a.contentid
            ORDER BY a.id DESC";
        $db->setQuery($query, 0, $count);
        $rows = $db->loadObjectList();
        $list    = array();
        $i    = 0;

   
        foreach($rows as $row) {
            $list[$i]->link = JRoute::_(ContentHelperRoute::getArticleRoute($row->slug, $row->catslug, $row->sectionid));

            $row->comment = jcStripBbCode($row->comment);
            $comment = modJomLatestHelper::_wrapText($row->comment, $displayLen);
           
            $comment = jcTransformDbText($comment);
            $comment = jcDecodeSmilies($comment);
            $list[$i]->comment = $comment;
            $list[$i]->name = jcTransformDbText(jcTextWrap($row->name, $nameLen));
           
            $list[$i]->dato = ($row->date);
            $list[$i]->title = jcTransformDbText(jcTextWrap($row->title, $titleLen));

            $i++;
        }

        return $list;
    }

Visningsiden således:

<?php
// no direct access
defined('_JEXEC') or die('Restricted access');
?>
<ul style="overflow: hidden" class="jomlatest<?php echo $params->get('moduleclass_sfx'); ?>">
<?php foreach ($list as $item) :  ?>
    <li class="jomlatest<?php echo $params->get('moduleclass_sfx'); ?>">
        <a href="<?php echo $item->link; ?>" class="jomlatest<?php echo $params->get('moduleclass_sfx'); ?>">
            <?php echo $item->title ?></a>
        </a>
        Kommentaret af <?php echo $item->name ?>
        tilføjet den <?php  echo $item->dato ?>
        <p><?php echo $item->comment ?></p>
    </li>
<?php endforeach; ?>
</ul>

Sidder der én der ude med løsningen?????


Hilsen Per
Avatar billede w13 Novice
10. november 2008 - 17:54 #1
Måske hvis du retter:

<?php  echo $item->dato ?>

til:

<?php  echo date('d-m-Y H:i', $item->dato) ?>
Avatar billede w13 Novice
10. november 2008 - 17:55 #2
Det kan selvfølgelig også gøres her i stedet:

$list[$i]->dato = ($row->date);

som du retter til:

$list[$i]->dato = date('d-m-Y H:i', ($row->date));

Så vil alle datoer ligge i rigtigt format, når du henter dem.

Hvis min kode altså virker. =)
Avatar billede w13 Novice
10. november 2008 - 17:59 #3
Her er et svar, hvis min kode konveRterer datoen korrekt. =)
Avatar billede webbygger Nybegynder
10. november 2008 - 21:52 #4
Hej w13

Begge dine script viser det samme resultat - nemlig 01-01-1970 01:33. Så selve datoformat er ok, men datoen er desværre ikke den rigtig :o(
Avatar billede w13 Novice
10. november 2008 - 22:18 #5
Hmm. Nej, så er det fordi datoen ikke er i UNIX Timestamp-formatet.
Avatar billede w13 Novice
10. november 2008 - 22:20 #6
Prøv så at rette:

$query = "SELECT a.id, a.contentid, a.comment, a.name, a.date, b.title, b.sectionid, b.title,
            CASE WHEN CHAR_LENGTH(b.alias) THEN CONCAT_WS(':', b.id, b.alias) ELSE b.id END as slug,
            CASE WHEN CHAR_LENGTH(cc.alias) THEN CONCAT_WS(':', cc.id, cc.alias) ELSE cc.id END as catslug
            FROM #__jomcomment as a , #__content as b
            INNER JOIN #__categories AS cc ON cc.id = b.catid
            INNER JOIN #__sections AS s ON s.id = b.sectionid
            WHERE a.published=1 AND b.id=a.contentid
            ORDER BY a.id DESC";

til:

$query = "SELECT a.id, a.contentid, a.comment, a.name, UNIX_TIMESTAMP(a.date) AS date, b.title, b.sectionid, b.title,
            CASE WHEN CHAR_LENGTH(b.alias) THEN CONCAT_WS(':', b.id, b.alias) ELSE b.id END as slug,
            CASE WHEN CHAR_LENGTH(cc.alias) THEN CONCAT_WS(':', cc.id, cc.alias) ELSE cc.id END as catslug
            FROM #__jomcomment as a , #__content as b
            INNER JOIN #__categories AS cc ON cc.id = b.catid
            INNER JOIN #__sections AS s ON s.id = b.sectionid
            WHERE a.published=1 AND b.id=a.contentid
            ORDER BY a.id DESC";
Avatar billede webbygger Nybegynder
10. november 2008 - 22:29 #7
SUPER w13 - tak for hurtig Ekspert hjælp
Avatar billede w13 Novice
10. november 2008 - 22:30 #8
Og tak for points! :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester