dagen bij een datum optellen
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)
1
2
3
4
5
6
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;
}
$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
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.
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!
Haha oke, succes ermee.. je moet/kan hem dus een ALIAS geven die je vervolgens kan uitlezen in je query-result.
In php zou ik dit (niet echt mooi) stukje gebruiken.
Code (php)
1
2
3
4
5
6
7
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;
}
$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 :)!