public static function fromString($value, array $formats = [])
{
$formats = array_merge($formats, ['Y-m-d H:i:s.u', 'Y-m-d H:i:s', 'Y-m-d', 'j. n. Y G:i:s', 'j. n. Y G:i', 'j. n. Y']);
if ($value instanceof \DateTime) {
return $value;
}
foreach ($formats as $format) {
if (!is_string($format) || !($date = \DateTime::createFromFormat($format, $value))) {
continue;
}
return $date;
}
$timestamp = strtotime($value);
if ($timestamp !== FALSE) {
$date = new \DateTime();
$date->setTimestamp($timestamp);
return $date;
}
throw new DataGridDateTimeHelperException();
}