|
|
@ -21,19 +21,19 @@ class Date { |
|
|
|
return $out; |
|
|
|
} |
|
|
|
|
|
|
|
public static function normalize($date, string $inFormat = null): ?\DateTimeInterface { |
|
|
|
public static function normalize($date, string $inFormat = null): ?\DateTimeImmutable { |
|
|
|
return ValueInfo::normalize($date, ValueInfo::T_DATE, $inFormat); |
|
|
|
} |
|
|
|
|
|
|
|
public static function add($interval, $date = "now"): ?\DateTimeInterface { |
|
|
|
public static function add($interval, $date = "now"): ?\DateTimeImmutable { |
|
|
|
return self::modify("add", $interval, $date); |
|
|
|
} |
|
|
|
|
|
|
|
public static function sub($interval, $date = "now"): ?\DateTimeInterface { |
|
|
|
public static function sub($interval, $date = "now"): ?\DateTimeImmutable { |
|
|
|
return self::modify("sub", $interval, $date); |
|
|
|
} |
|
|
|
|
|
|
|
protected static function modify(string $func, $interval, $date): ?\DateTimeInterface { |
|
|
|
protected static function modify(string $func, $interval, $date): ?\DateTimeImmutable { |
|
|
|
$date = self::normalize($date); |
|
|
|
$interval = (!$interval instanceof \DateInterval) ? ValueInfo::normalize($interval, ValueInfo::T_INTERVAL) : $interval; |
|
|
|
return $date ? $date->$func($interval) : null; |
|
|
|