public static function Carbon::createSafe in Persian Date for Drupal 8 8.4
Create a new safe Carbon instance from a specific date and time.
If any of $year, $month or $day are set to null their now() values will be used.
If $hour is null it will be set to its now() value and the default values for $minute and $second will be their now() values.
If $hour is not null then the default values for $minute and $second will be 0.
If one of the set values is not valid, an \InvalidArgumentException will be thrown.
Parameters
int|null $year:
int|null $month:
int|null $day:
int|null $hour:
int|null $minute:
int|null $second:
\DateTimeZone|string|null $tz:
Return value
static
Throws
File
- src/
Library/ Carbon/ Carbon.php, line 501
Class
- Carbon
- A simple API extension for DateTime
Namespace
Drupal\persian_date\Library\CarbonCode
public static function createSafe($year = null, $month = null, $day = null, $hour = null, $minute = null, $second = null, $tz = null) {
$fields = array(
'year' => array(
0,
9999,
),
'month' => array(
0,
12,
),
'day' => array(
0,
31,
),
'hour' => array(
0,
24,
),
'minute' => array(
0,
59,
),
'second' => array(
0,
59,
),
);
foreach ($fields as $field => $range) {
if (${$field} !== null && (!is_int(${$field}) || ${$field} < $range[0] || ${$field} > $range[1])) {
throw new InvalidDateException($field, ${$field});
}
}
$instance = static::create($year, $month, 1, $hour, $minute, $second, $tz);
if ($day !== null && $day > $instance->daysInMonth) {
throw new InvalidDateException('day', $day);
}
return $instance
->day($day);
}