<?php

function parseDate($date, $outputFormat = 'd/m/Y'){
    $formats = array(
        'd/m/Y',
        'd/m/Y H',
        'd/m/Y H:i',
        'd/m/Y H:i:s',
        'Y-m-d',
        'Y-m-d H',
        'Y-m-d H:i',
        'Y-m-d H:i:s',
    );

    foreach($formats as $format){
        $dateObj = DateTime::createFromFormat($format, $date);
        if($dateObj !== false){
            break;
        }
    }

    if($dateObj === false){
        throw new Exception('Invalid date:' . $date);
    }

    return $dateObj->format($outputFormat);
}


$testDates = array(
    '11/12/2014',     // MÊS/DIA/ANO
    '30/10/2014'      // DIA/MÊS/ANO
);

foreach($testDates as $date){
    var_dump( parseDate($date, 'Y-m-d') );
    //var_dump( DateTime::createFromFormat('d/m/Y', $date) instanceof DateTime );
}
