Tutorials

Nuttig gebruik van de date functie

Hoe je de date functie naast de momentele tijd en datum ook andere dingen kan laten berekenen

Pagina 1

uitleg

de date functie kan je gebruiken om de tijd te weten te komen:
<?
echo date("D M d, Y g:i a");
// uitkomst : za jul 07, 2007 10:57 pm
?>
hierbij kan je ook een optionele 2 waarde geven, als je die niet opgeeft wordt het automatisch gelezen als time()

hij leest het dus als:
<?
echo date("D M d, Y g:i a", time());
// uitkomst : za jul 07, 2007 10:57 pm
?>
hij neemt daarmee dus het aantal seconden sinds de Unix epoch(January 1 1970 00:00:00 GMT) (via de time() functie)

Wat wij nu gaan doen is de time() functie vervangen door een door onszelf opgegeven aantal seconden sinds de Unix epoch, bijvoorbeeld van je verjaardag of van kerst of wat je maar kan verzinnen
hoe we aan die waarde komen bespreek ik op de volgende pagina

en hoe we dit uiteindelijk gaan gebruiken vertel ik op de derde en laatste pagina
Pagina 2

Hoe komen we aan zo'n waarde

er zijn meerdere mogelijkheden om aan aantal seconden sinds te Unix epoch te komen ik bespreek hier slecht twee vormen, maar wel twee nuttige vormen, want een random getalletje daarvoor is ook leuk maar niet nuttig :P

vorm 1:
aan zo'n seconde aantal van dit moment kan je makkelijk komen met het volgende script :
<?
$tijdsindsunix = time();
?>
dit kan je gebruiken bijvoorbeeld als iemand inlogged op je site: door dit op te slaan in de database en dan bijvoorbeeld te gebruiken in zijn profiel.

vorm 2:
deze is iets ingewikkelder, maar nog steeds niet moeilijk.
via de mktime() functie kan je data terug laten rekenen naar seconde aantallen:
<?
$tijdsindsunix = mktime($uren, $minuten, $seconden, $dag, $maand, $jaar);
?>
Het enige probleem van de mktime functie is dat hij persee een dag maand en jaar waarde moet hebben, behalve als je graag hebt dat hij deze invult met de waardes die gelden voor die dag
Pagina 3

Hoe kunnen we dit nou gebruiken

manier 1:
gewoon simpel de datum en tijd gegevens van deze waarde laten zien:
<?
echo date("D M d, Y g:i a", $tijdsindsunix);
?>

manier 2:
vergelijken met de datum van nu:
<?
echo date("d \d\a\g\e\\n, m \m\a\a\\n\d\e\\n, Y \j\a\\r\e\\n g \u\\r\e\\n i \m\i\\n\u\\t\e\\n a \s\e\c\o\\n\d\e\\n", time()-$tijdsindsunix-3600);
// hier gebruiken we alleen -3600 om aan te geven dat het de nederlandse tijdzone is
?>

Reacties

0
Nog geen reacties.