Tutorials
Rekenen met datum en tijd
Een PHP manier die lijkt op de manier waarop wij mensen met datum en tijd rekenen
Pagina 1
Uitleg
Ik gebruik bij berekening met datum en tijd heel vaak de functies strtotime () en strftime ()
strtotime () kan allerlei date formats omzetten naar een UNIX timestamp, maar kan ook rekenen met diezelfde timestamps.
Als ik bijvoorbeeld dit doe:
<?php
$vandaag = time ();
?>
heb ik de timestamp van vandaag.
Wil ik de timestamp van morgen weten, dan doe ik:
<?php
$morgen = strtotime ("+1 day", $vandaag);
?>
of bijv volgende week:
<?php
$volgende_week = strtotime ("+1 week", $vandaag);
?>
Als je strtotime als tweede parameter een UNIX timestamp meegeeft, kan hij daarmee rekenen.
Nu heb ik drie timestamps die ik met strftime in elk format kan weergeven dat ik wil, bijv
<?php
// dagen en maanden in het Nederlands weergeven
setlocale (LC_ALL, "nl_NL");
$datumtekst = strftime ("%d %b", $vandaag);
$sql_datum = strftime ("%Y-%m-%d", $vandaag);
$datumtekst = strftime ("%d %b", $morgen);
$sql_datum = strftime ("%Y-%m-%d", $morgen);
$datumtekst = strftime ("%d %b", $volgende_week);
$sql_datum = strftime ("%Y-%m-%d", $volgende_week);
?>
In plaats van + kun je ook - gebruiken in strtotime (), dus "-1 day".
In plaats van "day" en "week" kun je ook "hour", "second" en zo gebruiken.
Misschien heeft iemand er iets aan!
strtotime () kan allerlei date formats omzetten naar een UNIX timestamp, maar kan ook rekenen met diezelfde timestamps.
Als ik bijvoorbeeld dit doe:
<?php
$vandaag = time ();
?>
heb ik de timestamp van vandaag.
Wil ik de timestamp van morgen weten, dan doe ik:
<?php
$morgen = strtotime ("+1 day", $vandaag);
?>
of bijv volgende week:
<?php
$volgende_week = strtotime ("+1 week", $vandaag);
?>
Als je strtotime als tweede parameter een UNIX timestamp meegeeft, kan hij daarmee rekenen.
Nu heb ik drie timestamps die ik met strftime in elk format kan weergeven dat ik wil, bijv
<?php
// dagen en maanden in het Nederlands weergeven
setlocale (LC_ALL, "nl_NL");
$datumtekst = strftime ("%d %b", $vandaag);
$sql_datum = strftime ("%Y-%m-%d", $vandaag);
$datumtekst = strftime ("%d %b", $morgen);
$sql_datum = strftime ("%Y-%m-%d", $morgen);
$datumtekst = strftime ("%d %b", $volgende_week);
$sql_datum = strftime ("%Y-%m-%d", $volgende_week);
?>
In plaats van + kun je ook - gebruiken in strtotime (), dus "-1 day".
In plaats van "day" en "week" kun je ook "hour", "second" en zo gebruiken.
Misschien heeft iemand er iets aan!
Reacties
0