Fix Jalali year-0 crash on /tasks from invalid target_date.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
+4
-1
@@ -107,7 +107,10 @@ class User extends Authenticatable
|
||||
|
||||
foreach ($data->attendances as $att) {
|
||||
if ($att->entered_at) {
|
||||
$date = \Morilog\Jalali\Jalalian::fromCarbon(\Carbon\Carbon::parse($att->entered_at));
|
||||
$date = \App\Support\JalaliHelper::fromDateTime($att->entered_at);
|
||||
if (!$date) {
|
||||
continue;
|
||||
}
|
||||
$month = $date->format('%B');
|
||||
|
||||
if (!isset($result[$month])) {
|
||||
|
||||
@@ -39,4 +39,23 @@ class JalaliHelper
|
||||
|
||||
return $jalali ? $jalali->format($format) : $fallback;
|
||||
}
|
||||
|
||||
/** تاریخ میلادی امن به صورت Y-m-d */
|
||||
public static function toGregorianDate($value, string $fallback = ''): string
|
||||
{
|
||||
if ($value === null || $value === '' || str_starts_with((string) $value, '0000-00-00')) {
|
||||
return $fallback;
|
||||
}
|
||||
|
||||
try {
|
||||
$carbon = $value instanceof Carbon ? $value->copy() : Carbon::parse($value);
|
||||
if ($carbon->year < 1000 || $carbon->year > 3000) {
|
||||
return $fallback;
|
||||
}
|
||||
|
||||
return $carbon->format('Y-m-d');
|
||||
} catch (Throwable $e) {
|
||||
return $fallback;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user