dagen bij een datum optellen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jason  van der Zeeuw

Jason van der Zeeuw

26/11/2011 22:24:35
Quote Anchor link
Hallo allemaal,

ik heb in mijn database een datum + tijd opgeslagen,
bijvoorbeeld: 2011-01-25 20:18:09
nu heb ik ook een aantal dagen erin staan bijvoorbeeld: 10
dan moet de einddatum worden:
2011-02-04 20:18:09

Ik wou hier een functie voor schrijven om dit te berekenen, maar het lukt me niet..
ik heb nu dit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
function bereken_einddatum($begindatum,$dagen){
    $einddatum = strtotime ("+".$dagen."days", $begindatum);
    $einddatum = strftime ("%Y-%m-%d %H:%i:%s", $einddatum);
    
    return $einddatum;
}


maar als ik nu dit aanroep:
bereken_einddatum("25-01-20011 20:18:09", 10);

krijg ik dit als uitkomst:
1970-01-11 01:%i:866011

kan iemand me hiermee helpen??

Groetjes Jason
 
PHP hulp

PHP hulp

22/12/2024 02:10:50
 
Jaron T

Jaron T

26/11/2011 22:47:41
Quote Anchor link
Waarom moeilijk doen als het makkelijk kan.

http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_date-add

Je hoort dit gewoon door mysql te laten doen, niet een 'vieze hack' toepassen om het werkend te krijgen in php.
 
Jason  van der Zeeuw

Jason van der Zeeuw

26/11/2011 22:59:10
Quote Anchor link
@Jaron T

bedankt voor de tip, ik ben er nu een tijdje mee bezig maar snap nog niet helemaal hoe ik het toe moet passen :S
Ik heb dus een begin datum, en een interval in dagen.
De query zal dus worden:

SELECT DATE_ADD('$begindatum',
-> INTERVAL $aantal_dagen DAYS)

Maar ik weet niet hoe ik dit kan toepassen/opslaan in de database...

Toevoeging op 26/11/2011 23:02:42:

aah ik heb het al :)!
ik zal de functie afmaken en hem dan posten!
 
Jaron T

Jaron T

26/11/2011 23:04:57
Quote Anchor link
Haha oke, succes ermee.. je moet/kan hem dus een ALIAS geven die je vervolgens kan uitlezen in je query-result.
 
- SanThe -

- SanThe -

26/11/2011 23:06:16
Quote Anchor link
SQL is inderdaad de beste oplossing.
In php zou ik dit (niet echt mooi) stukje gebruiken.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
function bereken_einddatum($begindatum,$dagen)
{

    return date('Y-m-d H:i:s', strtotime($begindatum) + $dagen*60*60*24);
}


echo bereken_einddatum('2011-01-25 20:18:09',5)
?>
 
Jason  van der Zeeuw

Jason van der Zeeuw

26/11/2011 23:09:37
Quote Anchor link
ik heb nu een functie die de einddatum berekent...

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
function bereken_einddatum($begindatum,$dagen){
    $query = mysql_query("SELECT '".$begindatum."' + INTERVAL ".$dagen." DAY");
    $row = mysql_fetch_array($query);
    $einddatum = $row["'".$begindatum."' + INTERVAL ".$dagen." DAY"];
    
    return $einddatum;
}


Ik return hier even die tabelrij om te checken of het klopte,
en het werkt ;)

Toevoeging op 26/11/2011 23:10:00:

@SanThe Bedankt dat is ook een handige manier :)!
 



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.