'dd/mm/yyyy HH:ii:ss')); $dateValidatorSlash = new Zend_Validate_Date(array('format' => 'dd/mm/yyyy')); $dateValidatorTrattino = new Zend_Validate_Date(array('format' => 'yyyy-mm-dd')); if ($dateValidatorSlashWithTime->isValid($data)) { $data = explode(' ', $data); $dataString = implode('-', array_reverse(explode("/", $data[0]))) . " " . $data[1]; } else if ($dateValidatorSlash->isValid($data)) { $dataString = implode('-', array_reverse(explode("/", $data))) . $this->checkTimeString($data); } else if ($dateValidatorTrattino->isValid($data)) { $dataString = $data . $this->checkTimeString($data); } else { return null; } $orig_date = new DateTime($dataString); return new MongoDB\BSON\UTCDateTime($orig_date->getTimestamp() * 1000); } private function checkTimeString($data) { return (preg_match('/[0-9]{2}:[0-9]{2}:[0-9]{2}/', $data)) ? '' : " 00:00:00"; } }