seasons: fixes listing based on aired date (adds UTC timezone to datetime)

This commit is contained in:
Irfan 2023-06-11 06:58:24 +05:00
parent 1720d7aabb
commit 8772fb4ed8
4 changed files with 33 additions and 8 deletions

View File

@ -154,13 +154,25 @@ class Anime extends JikanApiSearchableModel
/** @noinspection PhpUnused */
public function filterByStartDate(\Laravel\Scout\Builder|\Illuminate\Database\Eloquent\Builder $query, CarbonImmutable $value): \Laravel\Scout\Builder|\Illuminate\Database\Eloquent\Builder
{
return $query->where("aired.from", ">=", $value->setTime(0, 0)->toAtomString());
return $query
->where("aired.from", ">=",
$value
->setTime(0, 0)
->setTimezone(new \DateTimeZone('UTC'))
->toAtomString()
);
}
/** @noinspection PhpUnused */
public function filterByEndDate(\Laravel\Scout\Builder|\Illuminate\Database\Eloquent\Builder $query, CarbonImmutable $value): \Laravel\Scout\Builder|\Illuminate\Database\Eloquent\Builder
{
return $query->where("aired.to", "<=", $value->setTime(0, 0)->toAtomString());
return $query
->where("aired.to", "<=",
$value
->setTime(0, 0)
->setTimezone(new \DateTimeZone('UTC'))
->toAtomString()
);
}
public function filterByProducer(\Laravel\Scout\Builder|\Illuminate\Database\Eloquent\Builder $query, string $value): \Laravel\Scout\Builder|\Illuminate\Database\Eloquent\Builder

View File

@ -61,11 +61,13 @@ abstract class QueryAnimeSeasonHandlerBase implements RequestHandler
default => throw new BadRequestException('Invalid season supplied'),
};
$from = Carbon::createFromDate($year, $monthStart, 1);
$from->setTime(0, 0);
$from = Carbon::createFromDate($year, $monthStart, 1)
->setTimezone(new \DateTimeZone('UTC'))
->setTime(0, 0);
$to = Carbon::createFromDate($year, $monthEnd, 1);
$to->setTime(0, 0);
$to = Carbon::createFromDate($year, $monthEnd, 1)
->setTimezone(new \DateTimeZone('UTC'))
->setTime(0,0);
return [
$from,

View File

@ -14,6 +14,7 @@ trait IsoDateFormatter
$dt[2] ?? 1
)
->setTime(0, 0)
->setTimezone(new \DateTimeZone('UTC'))
->format(DATE_ATOM);
}
}

View File

@ -68,13 +68,23 @@ class Manga extends JikanApiSearchableModel
/** @noinspection PhpUnused */
public function filterByStartDate(\Laravel\Scout\Builder|\Illuminate\Database\Eloquent\Builder $query, CarbonImmutable $value): \Laravel\Scout\Builder|\Illuminate\Database\Eloquent\Builder
{
return $query->where("published.from", ">=", $value->setTime(0, 0)->toAtomString());
return $query
->where("published.from", ">=",
$value->setTime(0, 0)
->setTimezone(new \DateTimeZone('UTC'))
->toAtomString()
);
}
/** @noinspection PhpUnused */
public function filterByEndDate(\Laravel\Scout\Builder|\Illuminate\Database\Eloquent\Builder $query, CarbonImmutable $value): \Laravel\Scout\Builder|\Illuminate\Database\Eloquent\Builder
{
return $query->where("published.to", "<=", $value->setTime(0, 0)->toAtomString());
return $query
->where("published.to", "<=",
$value->setTime(0, 0)
->setTimezone(new \DateTimeZone('UTC'))
->toAtomString()
);
}
public function filterByMagazine(\Laravel\Scout\Builder|\Illuminate\Database\Eloquent\Builder $query, string $value): \Laravel\Scout\Builder|\Illuminate\Database\Eloquent\Builder