login  Naam:   Wachtwoord: 
Registreer je!
 Overzicht:
Overzicht > PHP > Datum/tijd > mktime()

Gebruik:
int mktime ( int uur, int minuut, int seconde, int maand, int dag, int jaar [, int is_dst])

Uitleg:
mktime zal de UNIX timestamp weergeven die overeenstemmen met de gegeven argumenten.
Dit is vooral handig om datums te vergelijken of tellingen uit te voeren.

De timestamp is een "long integer" dat het aantal seconden bevat tussen de UNIX EPOCH (waarvan de datum 1 januari 1970 is) en de tijd die aangeduid is.

Het argument is_dst kan weggelaten worden. Het kan op 1 gezet worden als de gevraagde tijd in "daylight savings time" is. "daylight savings time" wil zeggen dat men de klokken verzetten voor meer natuurlijk licht als men werkt, en de klokken tijdens de winter weer terugzetten.

De timestamp die de functie weergeeft kan het best gebruikt worden om op te slaan in een database bijvoorbeeld. Om er dan weer een volwaardige datum van te maken, moet je de functie date() gebruiken.

NOTA: Een datum met als jaar, maand en dag 0 wordt door PHP als illegaal beschouwd!


Voorbeeld:
Het volgende zal de datum "Jan-01-1985" weergeven:
<?php
echo date ("M-d-Y"mktime (0,0,0,1,1,1985));
?>

Een iets uitgebreider voorbeeld; je wilt uitzoeken hoeveel dagen er nog zijn
voor je volgende verjaardag.
<?php
// eerst de huidige datum aanmaken
$huidige_datum mktime(0,0,0,date("m"),date("d"),date("Y")); 

// de timestamp van je verjaardag:
$verjaardag mktime(0,0,0,"10","28","1980"); 

// mijn VOLGENDE verjaardag (dus in DIT jaar):
$volgende_verjaardag mktime(0,0,0,"10","28",date("Y")); 
 
// ALS $volgende_verjaardag in het VERLEDEN is voeg dan één jaar er aan toe.

if ($volgende_verjaardag $huidige_datum) { 
    
$volgende_verjaardag $volgende_verjaardag + (60*60*24*365); 


// bereken de overige dagen tot je verjaardag
$aantal_dagen intval( ( $volgende_verjaardag $huidige_datum ) / (60*60*24));


echo 
"Mijn volgende verjaardag is over ".$aantal_dagen." dagen!!"
?>

Bijdragen :
vinTage
sowieso, over setlocale:

  1. setlocale(LC_ALL, 'Dutch_Netherlands', 'Dutch', 'nl_NL', 'nl', 'nl_NL.ISO8859-1', 'nl_NL.UTF-8', 'nld_nld', 'nld', 'nld_NLD', 'NL_nl');
Maarten
Féderic:

Je kan in je voorbeeld
  1. <?php
  2. mktime( 0, 0, 0, date("m"), date("d"), date("Y");
  3. ?>
toch gewoon vervangen door time(), want of het nu 0 uur is of 23 uur, de dag zal altijd dezelfde zijn...
Frederic
Je kan met mktime() heel makkelijk de huidige datum in het Nederlands weergeven:

  1. <?php
  2. setlocale (LC_ALL, 'nl_NL');
  3. echo ucfirst( strftime( "%A %e %B %Y", mktime( 0, 0, 0, date("m"), date("d"), date("Y") ) ) ) . " " . date("H:i:s", time());
  4. // Woensdag 11 januari 2006 20:20:21
  5. ?>


Note: Soms moet je

  1. <?php
  2. setlocale (LC_ALL, 'Dutch');
  3. ?>


gebruiken om het te laten werken. Soms werkt het ook helemaal niet, de taalmodule moet nl. op de server geinstalleerd zijn, en dit is niet overal het geval!


 Overzicht
cal_days_in_month()
date()
mktime()
time()



© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.045s