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:

23 May 2019.
Dit is de 142e 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] = 33
$vandaag[minutes] = 40
$vandaag[hours] = 15
$vandaag[mday] = 23
$vandaag[wday] = 4
$vandaag[mon] = 5
$vandaag[year] = 2019
$vandaag[yday] = 142
$vandaag[weekday] = Thursday
$vandaag[month] = May
$vandaag[0] = 1558626033

 

top - getdate()

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:

2019-05-23 03:40:33
Thursday 23rd May 2019 03:40:33 pm
Het jaar 2019 is 142 dagen oud

top - date()

Formatteer de huidige datum en tijd volgens de lokale settings

zie examples_setlocale.php

<?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:

Thu May 23 15:40:33 2019
Thursday, 23 May 2019

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 = 1577750400
$vandaag = 1558569600
date('d-m-Y',$oudjaar) = 31-12-2019
date('d-m-Y',$vandaag) = 23-05-2019
Nog 222 dagen tot oudjaar.
Nog 222 dagen tot oudjaar.

top - mktime()

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:

23-05-2019 : 15h 40min 33sec (now)
10-09-2008 : 00h 00min 00sec (10 September 2008)
22-05-2019 : 15h 40min 33sec (-1 day)
30-05-2019 : 15h 40min 33sec (+1 week)
01-06-2019 : 17h 40min 38sec (+1 week 2 days 2 hours 5 seconds)
02-06-2019 : 06h 00min 00sec (+2 sundays)

top - strtotime()

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:

UTC
03h 40min

Europe/Brussels
05h 40min

America/New_York
11h 40min

top - date_default_timezone_get() - date_default_timezone_set()