fork download
  1. <?php
  2.  
  3. function parseDate($date, $outputFormat = 'd/m/Y'){
  4. $formats = array(
  5. 'd/m/Y',
  6. 'd/m/Y H',
  7. 'd/m/Y H:i',
  8. 'd/m/Y H:i:s',
  9. 'Y-m-d',
  10. 'Y-m-d H',
  11. 'Y-m-d H:i',
  12. 'Y-m-d H:i:s',
  13. );
  14.  
  15. foreach($formats as $format){
  16. $dateObj = DateTime::createFromFormat($format, $date);
  17. if($dateObj !== false){
  18. break;
  19. }
  20. }
  21.  
  22. if($dateObj === false){
  23. throw new Exception('Invalid date:' . $date);
  24. }
  25.  
  26. return $dateObj->format($outputFormat);
  27. }
  28.  
  29.  
  30. $testDates = array(
  31. '11/12/2014', // MÊS/DIA/ANO
  32. '30/10/2014' // DIA/MÊS/ANO
  33. );
  34.  
  35. foreach($testDates as $date){
  36. var_dump( parseDate($date, 'Y-m-d') );
  37. //var_dump( DateTime::createFromFormat('d/m/Y', $date) instanceof DateTime );
  38. }
  39.  
Success #stdin #stdout 0.01s 20568KB
stdin
Standard input is empty
stdout
string(10) "2014-12-11"
string(10) "2014-10-30"