Tijd uit database + 2 uur

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Mathijs

Mathijs

23/07/2008 16:07:00
Quote Anchor link
Ik heb een php script welke gegevens uit een database haalt en deze omzet naar een xml bestand.
Maar in 1 database (datetime) staat de datum en tijd als volgt, voorbeeld:
2008-07-21 16:00:00

Nu wil ik graag dat er bij de tijd niet 16:00:00 staat maar 18:00:00.
Dit betreft diverse nieuws artikelen dus het gaat om steeds wisselende tijden.
De tijd haalt het script uit de tabel "publishedOn"
De bedoeling is dat de goede tijd tussen: <newspublication_date>" . $row['publishedOn'] . "</newspublication_date> komt te staan.
Wie kan mij hier mee helpen ?
Het script:
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
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?php

header("Content-type: text/xml");

$host = "localhost";
$user = "user";
$pass = "password";
$database = "database";

$linkID = mysql_connect($host, $user, $pass) or die("Could not connect to host.");
mysql_select_db($database, $linkID) or die("Could not find database.");

$query = "SELECT * FROM ap_articles WHERE status = 'visible' AND publishedOn < NOW()  ORDER BY publishedOn DESC LIMIT 0, 1000";
$resultID = mysql_query($query, $linkID) or die("Data not found.");

$xml_output = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
$xml_output .= "<urlset xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\" xmlns:news=\"http://www.google.com/schemas/sitemap-news/0.9\">\n";

for($x = 0 ; $x < mysql_num_rows($resultID) ; $x++){
    $row = mysql_fetch_assoc($resultID);
    $xml_output .= "\t<url>\n";
    $xml_output .= "\t\t<loc>" . $row['url'] . "</loc>\n";
    $xml_output .= "\t<news:news>\n";
        // Escaping illegal characters
        $row['publishedOn'] = str_replace(" ", "T", $row['publishedOn']);
$xml_output .= "\t\t<news:publication_date>" . $row['publishedOn'] . "</news:publication_date>\n";  
    $xml_output .= "\t<news:keywords>" . $row['keywords'] . "</news:keywords>\n";
    $xml_output .= "\t</news:news>\n";
    $xml_output .= "\t</url>\n";
}


$xml_output .= "</urlset>";

echo $xml_output;

?>
 
PHP hulp

PHP hulp

30/11/2024 01:35:42
 
SSC Contact Centers B.V.

SSC Contact Centers B.V.

23/07/2008 16:14:00
Quote Anchor link
--
Gewijzigd op 01/01/1970 01:00:00 door SSC Contact Centers B.V.
 
Mathijs

Mathijs

23/07/2008 16:17:00
Quote Anchor link
Klopte de oplossing niet ?
Gewijzigd op 01/01/1970 01:00:00 door Mathijs
 
PHP Newbie

PHP Newbie

23/07/2008 16:19:00
Quote Anchor link
DATE_ADD(NOW(), INTERVAL 2 HOUR)

edit:
HOURS moest HOUR zijn
Gewijzigd op 01/01/1970 01:00:00 door PHP Newbie
 
Mathijs

Mathijs

23/07/2008 16:21:00
Quote Anchor link
PHP Newbie schreef op 23.07.2008 16:19:
DATE_ADD(NOW(), INTERVAL 2 HOURS)


Waar en hoe moet ik dit neer zetten in het script ?
 
PHP Newbie

PHP Newbie

23/07/2008 16:22:00
Quote Anchor link
Dat stukje code geeft de huidige datum en tijd + 2 uur. Deze moet je dus neerzetten in de SQL code waar je die datum nodig hebt.
 
Mathijs

Mathijs

23/07/2008 16:25:00
Quote Anchor link
Maar ik moet niet de huidige tijd +2 uur hebben maar de tijd van de nieuwsartikelen welke hij uit de database haalt. Hoe moet k dat doen ?
 
Mathijs

Mathijs

23/07/2008 16:30:00
Quote Anchor link
PHP Newbie schreef op 23.07.2008 16:22:
Dat stukje code geeft de huidige datum en tijd + 2 uur. Deze moet je dus neerzetten in de SQL code waar je die datum nodig hebt.


Bij wijze van test:
Als ik probeer om de code tussen de <news:publication_date> tags te zetten geeft hij de DATEADD enz.. als normale tekst weer, hij doet niets met de code, hoe kan dit?
Niet Bumpen::
Twee of meer keer achter elkaar in een topic posten heet bumpen. Bumpen is pas na 24 uur toegestaan en kan een reden zijn voor de admins en moderators om een topic te sluiten. Gebruik indien nodig de Afbeelding knop om je tekst aan te passen.

SanThe.
Gewijzigd op 01/01/1970 01:00:00 door Mathijs
 
PHP Newbie

PHP Newbie

23/07/2008 16:50:00
Quote Anchor link
Regel 13 moet zoiets worden:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
$query = "SELECT
            url,
            pubslishedOn,
            keywords,
            DATE_ADD(publishedOn, INTERVAL 2 HOURS) AS publishedOnLater
            FROM
                ap_articles
            WHERE
                status = 'visible'
                AND publishedOn < NOW()  
            ORDER BY
                publishedOn DESC LIMIT 0, 1000";


Nu kun je de publicatiedatum + 2 uur opvragen met de variabele $row['publishedOnLater']
 
Mathijs

Mathijs

23/07/2008 17:01:00
Quote Anchor link
Ik heb het aangepast maar ik krijg nu de error Data not found.
Wat moet ik aanpassen ?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$query = "SELECT url,publishedOn,keywords DATE_ADD(publishedOn, INTERVAL 2 HOURS) AS publishedOnLater FROM ap_articles WHERE status = 'visible' AND publishedOn < NOW() ORDER BY publishedOn DESC LIMIT 0, 1000";
 
Jurgen assaasas

Jurgen assaasas

23/07/2008 17:02:00
Quote Anchor link
Date add heb je niet nodig je kunt gewoon publishedOn + INTERVAL 2 HOURS
 
PHP Newbie

PHP Newbie

23/07/2008 17:04:00
Quote Anchor link
Beetje rare error, is dat de exacte error?
 
Mathijs

Mathijs

23/07/2008 17:06:00
Quote Anchor link
Ja als je even wilt kijken de url is: http://www.gadgetrider.eu/newssitemap.php
 
Mathijs

Mathijs

23/07/2008 17:13:00
Quote Anchor link
Ik ben zelf even aan het testen gegaan als ik AS publishedOnLater
weg haal werkt het script wel, hij geeft niet de resultaten weer, maar ik krijg geen error meer.
Niet Bumpen::
Twee of meer keer achter elkaar in een topic posten heet bumpen. Bumpen is pas na 24 uur toegestaan en kan een reden zijn voor de admins en moderators om een topic te sluiten. Gebruik indien nodig de Afbeelding knop om je tekst aan te passen.

SanThe.
Gewijzigd op 01/01/1970 01:00:00 door Mathijs
 
Gerben Jacobs

Gerben Jacobs

23/07/2008 17:33:00
Quote Anchor link
Na 'keywords' moet nog een comma en let eens op SanThe's text. Niet bumpen, kthxbai.
 
Noppes

Noppes

23/07/2008 17:53:00
Quote Anchor link
Tja en als je nu gelijk afleert om DATE_ADD en DATE_SUB te gebruiken dan kom je veel verder.

Dit werkt over het algemeen op elke database
publishedOn + INTERVAL 2 HOUR
Gewijzigd op 01/01/1970 01:00:00 door Noppes
 
PHP Newbie

PHP Newbie

23/07/2008 18:02:00
Quote Anchor link
Noppes schreef op 23.07.2008 17:53:
Tja en als je nu gelijk afleert om DATE_ADD en DATE_SUB te gebruiken dan kom je veel verder.

Dit werkt over het algemeen op elke database
publishedOn + INTERVAL 2 HOUR


Helemaal gelijk
 
Mathijs

Mathijs

23/07/2008 20:42:00
Quote Anchor link
Dank jullie wel, het probleem is nu opgelost.
 



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.