public static function date(Factory $factory, $name, array $config) { return function ($sequence = null) use($factory, $name, $config) { $value = $config['value']; if (!$value) { $timestamp = time(); } else { if (is_integer($value) || is_float($value)) { $timestamp = $value; } else { $generated = DefaultGenerator::generate($factory->getFaker(), $config['value']); if ($generated == $config['value']) { $timestamp = strtotime($generated); } else { if (!$generated instanceof \DateTime) { throw new \InvalidArgumentException('Unexpected faker method, must return a DateTime object'); } return $generated; } } } $date = new \DateTime(); $date->setTimestamp($timestamp); return $date; }; }