isoFormat($format)); } /** * Случайная дата за последние X лет в формате YYYY-MM-DD * @param int|null $last_years * @return string */ public static function getRandomDate(?int $last_years = 7): string { if (($last_years > ((int)date('Y') - self::MINIMAL_RANDOM_YEAR)) || ($last_years < 0)) { throw new InvalidDateException('last_years', $last_years, 1); } $seconds = rand(0, $last_years * self::SECONDS_IN_YEAR); // случайное число секунд в диапазоне от 0 до Х лет return Carbon::createFromTimestamp(strtotime('now') - $seconds)->isoFormat(self::DB_FORMAT); } /** * @param string $date * @return string */ public static function getDateForDB(string $date): string { return Carbon::parse($date)->isoFormat(self::DB_FORMAT); } /** * @param string $date * @param int $months * @return string */ public static function addMonths(string $date, int $months): string { return Carbon::parse($date)->addMonths($months)->isoFormat(self::DB_FORMAT); } }