PHP Datum en tijd functies:
Deze functies maken gebruik van de lokale instelling op de server.
De weergave is altijd in het Engels!!!
Datum en tijd functies op php.net
Haal huidige datum en tijd op
<?php
//haal de huidige datum en tijd op
$vandaag = getdate();
// jaar: 'year'
// maand: 'mon' (numeriek)
// 'month' (tekstueel)
// dag: 'mday' (dag van de maand)
// 'wday' (dag van de week)
// 'yday' (dag van het jaar)
// 'weekday' (tekstueel)
// uur: 'hours'
// minuten: 'minutes'
// seconden: 'seconds'
$maand = $vandaag['month'];
$dag = $vandaag['mday'];
$jaar = $vandaag['year'];
$dagJaar = $vandaag['yday'];
echo "$dag $maand $jaar.<br />Dit is de $dagJaar<sup>e</sup> dag van het jaar.";
?>
Resultaat:
16 April 2021.Dit is de 105e dag van het jaar.
<?php
//toon alle elementen binnen de array getdate()
//$vandaag[0] geeft de huidige timestamp
foreach($vandaag as $key => $value) {
echo"\$vandaag[$key] = $value <br />";
}
?>
Resultaat:
$vandaag[seconds] = 41$vandaag[minutes] = 55
$vandaag[hours] = 17
$vandaag[mday] = 16
$vandaag[wday] = 5
$vandaag[mon] = 4
$vandaag[year] = 2021
$vandaag[yday] = 105
$vandaag[weekday] = Friday
$vandaag[month] = April
$vandaag[0] = 1618595741
Formatteer de huidige datum en tijd
<?php
// jaar: Y (4 cijfers)
// y (2 cijfers)
// maand: F (tekstueel, voluit geschreven)
// M (tekstueel, 3 letters)
// m (numeriek van 01 tot 12)
// n (numeriek van 1 tot 12)
// dag: d (dag van de maand: 2 cijfers)
// D (dag van de week: 3 letters)
// z (dag van het jaar: van 0 tot 365)
// w (numeriek van 0(zon) tot 6(zat))
// l (tekstueel, voluit geschreven)
// uur: g (12 uurs formaat: van 1 tot 12)
// h (12 uurs formaat: van 01 tot 12)
// G (24 uurs formaat: van 0 tot 23)
// H (24 uurs formaat: van 00 tot 23)
// minuten: i (van 00 tot 59)
// seconden: s (van 00 tot 59)
// am-pm: a
// AM-PM: A
// volledig: r (RFC 822, bv 'Thu, 21 Dec 2000 16:01:07 +0200')
// dagen: t (aantal dagen in een gegeven maand)
// suffix: S (Engelse suffix voor de dag van de maand, 'th' of 'nd')
echo date('Y-m-d h:i:s').'<br />' // MySQL formaat
echo date('l dS F Y h:i:s a').'<br />';
echo 'Het jaar '.date('Y').' is '.date('z').' dagen oud';
?>
Resultaat:
2021-04-16 05:55:41Friday 16th April 2021 05:55:41 pm
Het jaar 2021 is 105 dagen oud
Formatteer de huidige datum en tijd volgens de lokale settings
<?php
// Eeuw: %C (2 cijfers) (NIET op Windows)
// jaar: %Y (4 cijfers)
// %y (2 cijfers)
// maand: %B (tekstueel, voluit geschreven)
// %b (tekstueel, 3 letters)
// %h (zelfde als %b) (NIET op Windows)
// %m (numeriek van 01 tot 12)
// dag: %d (dag van de maand: 2 cijfers)
// %e (dag van de maand: 1 of 2 cijfers) (NIET op Windows)
// %a (dag van de week: 3 letters)
// %j (dag van het jaar: van 000 tot 365)
// %u (numeriek van 1(ma) tot 7(zo)) (NIET op Windows)
// %A (tekstueel, voluit geschreven)
// Week: %U (weeknummer)
// %V (weeknummer: van 01 tot 53) (NIET op Windows)
// uur: %I (12 uurs formaat: van 01 tot 12)
// %H (24 uurs formaat: van 00 tot 23)
// minuten: %M (van 00 tot 59)
// seconden: %S (van 00 tot 59)
// am-pm: %p
// tijd: %T (zelfde als %H:%M:%S) (NIET op Windows)
// %R (zelfde als %H:%M) (NIET op Windows)
// %r (zelfde als %H:%M:%S %p) (NIET op Windows)
// volledig: %c (datum en tijd volgens de huidige lokale settings
// Verschillend op Windows en UNIX!)
// %x (enkel datum volgens de huidige lokale settings)
// %D (zelfde als %x) (NIET op Windows)
// %X (enkel tijd volgens de huidige lokale settings)
// timezone: %Z (volledig op Windows, afgekort op UNIX)
echo strftime('%c').'<br />';
echo strftime('%A, %d %B %Y').'<br />';
?>
Resultaat:
Fri Apr 16 17:55:41 2021Friday, 16 April 2021
top - strftime() - setlocale()
Maak een datum
<?php
//volgorde binnen mktime() is uur, min, sec, maand, dag, jaar
$oudjaar = mktime(0,0,0,12,31,date('Y'));
$vandaag = mktime(0,0,0,date('m'),date('d'),date('Y'));
echo $oudjaar;
echo $vandaag;
echo date('d-m-Y',$oudjaar);
echo date('d-m-Y',$vandaag);
//aantal dagen tussen oudjaar en vandaag
echo 'Nog '.date('z',($oudjaar - $vandaag)).' dagen tot oudjaar.';
//ofwel
echo 'Nog '.round(($oudjaar - $vandaag)/(24*60*60),0).' dagen tot oudjaar.';
?>
Resultaat:
$oudjaar = 1640908800$vandaag = 1618531200
date('d-m-Y',$oudjaar) = 31-12-2021
date('d-m-Y',$vandaag) = 16-04-2021
Nog 259 dagen tot oudjaar.
Nog 259 dagen tot oudjaar.
Een string naar een datum converteren en omgekeerd
<?php
//vertaal met strtotime() zowat elke Engelstalige tekst naar een datum.
echo date('d-m-Y : H\h i\m\i\n s\s\c',strtotime('now'));
echo date('d-m-Y : H\h i\m\i\n s\s\c',strtotime('10 September 2008'));
echo date('d-m-Y : H\h i\m\i\n s\s\c',strtotime('-1 day'));
echo date('d-m-Y : H\h i\m\i\n s\s\c',strtotime('+1 week'));
echo date('d-m-Y : H\h i\m\i\n s\s\c',strtotime('+1 week 2 days 2 hours 5 seconds'));
echo date('d-m-Y : H\h i\m\i\n s\s\c',strtotime('+2 sundays'));
?>
Resultaat:
16-04-2021 : 17h 55min 41sec (now)10-09-2008 : 00h 00min 00sec (10 September 2008)
15-04-2021 : 17h 55min 41sec (-1 day)
23-04-2021 : 17h 55min 41sec (+1 week)
25-04-2021 : 19h 55min 46sec (+1 week 2 days 2 hours 5 seconds)
25-04-2021 : 06h 00min 00sec (+2 sundays)
Tijdzone lezen en aanpassen
<?php
// Tijdzone lezen.
echo(date_default_timezone_get());
echo date('h\h i\m\i\n');
// Tijdzone Brussel;
date_default_timezone_set('Europe/Brussels');
echo(date_default_timezone_get());
echo date('h\h i\m\i\n');
// Tijdzone New_York
date_default_timezone_set('America/New_York');
echo(date_default_timezone_get());
echo date('h\h i\m\i\n');
?>
Resultaat:
UTC05h 55min
Europe/Brussels
07h 55min
America/New_York
01h 55min
top - date_default_timezone_get() - date_default_timezone_set()