PHP - funkce checkdate

Datum vydání: 2013-02-24 10:09:04; aktualizováno: 2013-02-24 19:04:20

Funkce checkdate() na otestování správnosti data funguje správně i pro data mimo interval od roku 1970 do roku 2038. Je to logické, protože pro kontrolu správnosti data není třeba mít samotné datum uloženo jako integer.

bool checkdate (int $month , int $day , int $year)

Příklad testu

<?php
echo checkdate (12, 31, 2013) ? '31. 12. 2013 TRUE' : '31. 12. 2013 FALSE';
echo '
'; echo checkdate (03, 01, 2013) ? '01. 03. 2013 TRUE' : '01. 03. 2013 FALSE'; echo '
'; echo checkdate (3, 1, 2013) ? '1. 3. 2013 TRUE' : '1. 3. 2013 FALSE'; echo '
'; echo checkdate (3, 1, 13) ? '1. 3. 13 TRUE' : '1. 3. 13 FALSE'; echo '
'; echo checkdate (30, 2, 2013) ? '30. 2. 2013 TRUE' : '30. 2. 2013 FALSE'; echo '
'; echo checkdate (12, 31, 2042) ? '31. 12. 2042 TRUE' : '31. 12. 2042 FALSE'; echo '
'; echo checkdate (12, 31, 1600) ? '31. 12. 1600 TRUE' : '31. 12. 1600 FALSE'; echo '
'; echo checkdate (12, 31, 2567) ? '31. 12. 2567 TRUE' : '31. 12. 2567 FALSE'; echo '
'; ?>

Spuštění kódu

31. 12. 2013 TRUE
01. 03. 2013 TRUE
1. 3. 2013 TRUE
1. 3. 13 TRUE
30. 2. 2013 FALSE
31. 12. 2042 TRUE
31. 12. 1600 TRUE
31. 12. 2567 TRUE

Akorát je třeba dát pozor na deklaraci. Funkce vyžaduje nejprve měsíc, pak den a nakonec rok. Je to nelogické pořadí.