Php date format

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jordy nvt

Jordy nvt

13/03/2011 14:10:45
Quote Anchor link
Op het moment ben ik een script aan het maken dat al het nieuws uit de database haalt en daar een rss feed van maakt. Nu moet ik alleen binnen de xml tag <pubdate> zo'n irritante datum in een bepaald formaat opslaan. Ik geloof dat dat kan met 'r' (zie http://php.net/manual/en/function.date.php). Maar dat werkt niet als ik dat uit de database haal:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php

$query_news
= "SELECT * FROM news ORDER BY News_date DESC LIMIT 0,10";
$result_news = mysql_query($query_news, $db_home);
if (mysql_num_rows($result_news) > 0){
    while($row_news=mysql_fetch_array($result_news)){
        $news_id                                =    $row_news['News_id'];
        $news_subject                        =    $row_news['News_subject'];
        $news_pubdate                    =    date('r',$row_news['News_date']);
        $news_description                =    $row_news['News_description'];
        $news_description_image    =    $row_news['News_description_image'];
        $news_content                        =    $row_news['News_content'];

        echo "<item>";
            echo "<title>$news_subject</title>";
            echo "<link>http://www.mijnwebsite.nl/index.php?p=news&amp;id=$news_id</link>";
            echo "<description>$news_description</description>";
            echo "<pubDate>$news_pubdate</pubDate>";
        echo "</item>";
    }
}

?>


Hoe moet ik de datum opslaan in MySQL? Ik heb het geprobeerd in een datetime en in een timestamp veld maar op de een of andere manier lukt het niet. Ik krijg telkens: donderdag 1 januari 1970, 1:33:31, en niet de juiste tijd.
Gewijzigd op 13/03/2011 14:11:09 door Jordy nvt
 
PHP hulp

PHP hulp

25/04/2024 08:11:17
 
Noppes Homeland

Noppes Homeland

13/03/2011 14:26:47
Quote Anchor link
als je een display datum format nodig hebt en je hebt een datum tijd (DATETIME) in de database staan waarom dan kloten met php date?

En xml maak je aan met simplexml xmlwrite of DOM, dus zeer zeker niet zoals je het nu doet.

-> maak geen overbodige variabelen aan
-> PHP variabelen buiten quotes
-> strings quoten met enkele quotes
-> fetch_array heeft een tweede parameter, gebruik die dan ook als je alleen assoc gebruikt, maar ja waarom dan niet _fetch_assoc
-> codeer overzichtlijk
-> mysql functies moet je niet nesten dat is vragen om problemen en het debuggen wordt dan wel erg vervelend
-> pas fatsoenlijke controles/validaties en foutafhandeling toe
Gewijzigd op 13/03/2011 14:33:40 door Noppes Homeland
 
Jordy nvt

Jordy nvt

13/03/2011 14:41:49
Quote Anchor link
Snap ik, dit is ook niet mijn volledige code:-) Het is om even een voorbeeldje te geven. Het gaat er dus om hoe ik de datum op de goede manier weergeef.
 
Noppes Homeland

Noppes Homeland

13/03/2011 14:46:51
Quote Anchor link
Aan voorbeeld code hebben we niets, post altijd je werkelijk relevante code!!

-> heb je gelijk ook minder kans dat je wordt afgezeken.

Voor de wijsneus dan maar
http://www.php.net/date

en dan vooral goed kijken wat je als tweede paramter moet doorgeven, en dat betekent niet dat je het ook zo in de database moet opslaan.

En ik verwijs je nu naar php.net omdat mysql niet de 'r' formatting alsdanig en simpel voor handen heeft.
Gewijzigd op 13/03/2011 14:48:25 door Noppes Homeland
 
Joris van Rijn

Joris van Rijn

13/03/2011 14:57:26
Quote Anchor link
Ik vind het ironisch dat je iedereen aan zn neus hangt om variable buiten quotes te zetten etc; en dat je het zelf niet doet.
 
Jordy nvt

Jordy nvt

13/03/2011 17:00:00
Quote Anchor link
Ik loop nooit tegen iemand te zeggen dat variabelen buiten quotes moeten???

Maar het eniste probleem is toch dat PHP het niet goed omzet? Stel dat ik $news_pubdate=date('r',$row_news['News_date']); vervang door $news_pubdate=date('r'); dan doet het script het wel goed. Het ligt dus aan $row_news['News_date'], oftewel de database
 
- SanThe -

- SanThe -

13/03/2011 17:01:49
Quote Anchor link
Dan zit er vast geen timestamp in $row_news['News_date'].
 
Jordy nvt

Jordy nvt

13/03/2011 17:09:50
Quote Anchor link
Laat maar, ik heb het met MySQL uitgevochten:

SELECT *, date_format(News_date, '%a, %d %b %Y %k:%i:%s +0100') AS News_date_format FROM news ORDER BY News_date DESC LIMIT 0,10
 
Marianne Wippetnose

Marianne Wippetnose

17/02/2012 20:10:52
Quote Anchor link
date("r", strtotime($news_pubdate['News_date']))
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.