protected function fromDateTime($value)
{
$format = $this->getDateFormat();
// If the value is already a MongoDate instance just return the MongoDate
if ($value instanceof MongoDate) {
return $value;
} elseif ($value instanceof DateTime) {
//
} elseif (is_numeric($value)) {
$value = Carbon::createFromTimestamp($value);
} elseif (preg_match('/^(\\d{4})-(\\d{2})-(\\d{2})$/', $value)) {
$value = Carbon::createFromFormat('Y-m-d', $value);
} elseif (!$value instanceof DateTime) {
$value = Carbon::createFromFormat($format, $value);
}
return new MongoDate($value->getTimestamp());
}