Advertisement
chrisversloot

[OOP] DatumTijd klasse, datum-converter naar Nederlands

Mar 25th, 2014
170
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.59 KB | None | 0 0
  1. <?php
  2.  
  3.     /**
  4.      * Datum- en tijdklasse, waarin allerlei datum- en tijdzaken geregeld worden.
  5.      * @author Christian Versloot
  6.      */
  7.  
  8.     class DatumTijd {
  9.  
  10.  
  11.         /**
  12.          * Retourneer de Unix epoch-tijd
  13.          * @param   Geen parameters
  14.          * @return  De huidige tijd in Unix waarde
  15.          */
  16.  
  17.         public function getEpoch() {
  18.             return time();
  19.         }
  20.  
  21.  
  22.  
  23.         /**
  24.          * Retourneer de huidige datum in het Nederlands
  25.          */
  26.         public function getDatum($epoch, $dagNaam = true, $dag = true, $maand = true, $jaar = true, $uur = true, $minuut = true, $seconde = true, $maandNaam = true, $dagMetHoofdletter = false) {
  27.            
  28.             /* Definieer een aantal startvariabelen */
  29.             $delimiter      = " ";
  30.             $datumDelimiter = "/";
  31.             $tijdDelimiter  = ":";
  32.             $datumOpbouw    = null;
  33.  
  34.             /* Bepaal of het gaat om een alfanumerieke of tekstuele maand. Verander de delimiter! */
  35.             if($maandNaam) {
  36.                 $datumDelimiter = " ";
  37.             }
  38.  
  39.             /* Voeg de dagnaam toe indien deze toegevoegd moet (incl. delim aan einde) */
  40.             if($dagNaam) {
  41.                
  42.                 /* Bepaal welke dag het is */
  43.                 switch(date('D', $epoch)) {
  44.                     case 'Mon': $dagSave = 'maandag'; break;
  45.                     case 'Tue': $dagSave = 'dinsdag'; break;
  46.                     case 'Wed': $dagSave = 'woensdag'; break;
  47.                     case 'Thu': $dagSave = 'donderdag'; break;
  48.                     case 'Fri': $dagSave = 'vrijdag'; break;
  49.                     case 'Sat': $dagSave = 'zaterdag'; break;
  50.                     case 'Sun': $dagSave = 'zondag'; break;
  51.                 }
  52.  
  53.                 /* Voeg de dag toe */
  54.                 $datumOpbouw = $dagSave . $delimiter;
  55.             }
  56.  
  57.             /* Voeg de dag toe indien deze toegevoegd moet */
  58.             if($dag) {
  59.                 $datumOpbouw .= $delimiter . date('d', $epoch) . $datumDelimiter;
  60.             }
  61.  
  62.             /* Voeg de maand toe indien deze toegevoegd moet */
  63.             if($maand) {
  64.  
  65.                 /* Verleng de string op basis van alfanumerieke of tekstuele waardes */
  66.                 if($maandNaam) {
  67.                     switch(date('n', $epoch)) {
  68.                         case 1: $maandSave = 'januari'; break;
  69.                         case 2: $maandSave = 'februari'; break;
  70.                         case 3: $maandSave = 'maart'; break;
  71.                         case 4: $maandSave = 'april'; break;
  72.                         case 5: $maandSave = 'mei'; break;
  73.                         case 6: $maandSave = 'juni'; break;
  74.                         case 7: $maandSave = 'juli'; break;
  75.                         case 8: $maandSave = 'augustus'; break;
  76.                         case 9: $maandSave = 'september'; break;
  77.                         case 10: $maandSave = 'oktober'; break;
  78.                         case 11: $maandSave = 'november'; break;
  79.                         case 12: $maandSave = 'december'; break;
  80.                     }
  81.                     $datumOpbouw .= $maandSave . $datumDelimiter;
  82.                 }
  83.                 else {
  84.                     $datumOpbouw .= date('m', $epoch) . $datumDelimiter;
  85.                 }
  86.  
  87.             }
  88.  
  89.             /* Voeg het jaar toe indien deze toegevoegd moet */
  90.             if($jaar) {
  91.                 $datumOpbouw .= date('Y', $epoch);
  92.             }
  93.  
  94.             /* Voeg, indien er sprake is van een datum, een Delimiter toe aan de String */
  95.             if($dag || $maand || $jaar) {
  96.                 $datumOpbouw .= $delimiter;
  97.             }
  98.  
  99.             /* Voeg het uur toe indien deze toegevoegd moet */
  100.             if($uur) {
  101.                 $datumOpbouw .= $delimiter . date('H', $epoch) . $tijdDelimiter;
  102.             }
  103.  
  104.             /* Voeg de minuut toe indien deze toegevoegd moet */
  105.             if($minuut) {
  106.                 $datumOpbouw .= $delimiter . date('i', $epoch) . $tijdDelimiter;
  107.             }
  108.  
  109.             /* Voeg de seconde toe indien deze toegevoegd moet */
  110.             if($seconde) {
  111.                 $datumOpbouw .= $delimiter . date('s', $epoch);
  112.             }
  113.  
  114.             /* Retourneer de opgebouwde datum op basis van het criterium */
  115.             if($dagNaam && $dagMetHoofdletter) {
  116.                 return ucfirst($datumOpbouw);
  117.             }
  118.             else {
  119.                 return $datumOpbouw;
  120.             }
  121.  
  122.         }
  123.  
  124.  
  125.         /**
  126.          * Bepaal of een jaar een schrikkeljaar is.
  127.          */
  128.  
  129.         public function isSchrikkeljaar($epoch) {
  130.  
  131.             return date('L', $epoch) == 1;
  132.  
  133.         }
  134.  
  135.     }
  136.  
  137. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement