Problem with month translation in Filters - related to Carbon?

We have a very interesting issue with months translated through src/Filters/QueryBuilder/Constraints/DateConstraint/Operators/IsMonthOperator.php:getMonths():
protected function getMonths(): array
{
return collect(range(1, 12))
->mapWithKeys(fn (int $month): array => [
$month => now()->setMonth($month)->getTranslatedMonthName(),
])
->all();
}
protected function getMonths(): array
{
return collect(range(1, 12))
->mapWithKeys(fn (int $month): array => [
$month => now()->setMonth($month)->getTranslatedMonthName(),
])
->all();
}
Result: The list of month is off since a little bit:
array(12) {
[1]=>
string(7) "January"
[2]=>
string(5) "March"
[3]=>
string(5) "March"
[4]=>
string(3) "May"
[5]=>
string(3) "May"
[6]=>
string(4) "July"
[7]=>
string(4) "July"
[8]=>
string(6) "August"
[9]=>
string(7) "October"
[10]=>
string(7) "October"
[11]=>
string(8) "December"
[12]=>
string(8) "December"
}
array(12) {
[1]=>
string(7) "January"
[2]=>
string(5) "March"
[3]=>
string(5) "March"
[4]=>
string(3) "May"
[5]=>
string(3) "May"
[6]=>
string(4) "July"
[7]=>
string(4) "July"
[8]=>
string(6) "August"
[9]=>
string(7) "October"
[10]=>
string(7) "October"
[11]=>
string(8) "December"
[12]=>
string(8) "December"
}
However this problem is not related to filament, it seems to be a bug with Carbon, confirmed via the Carbon SandBox: https://play.phpsandbox.io/embed/nesbot/carbon
\Carbon\Carbon::setLocale('en');

$months = range(1, 12);

$monthNames = [];

foreach ($months as $month) {
$monthNames[$month] = \Carbon\Carbon::now()->setMonth($month)->getTranslatedMonthName();
}

var_dump($monthNames);
\Carbon\Carbon::setLocale('en');

$months = range(1, 12);

$monthNames = [];

foreach ($months as $month) {
$monthNames[$month] = \Carbon\Carbon::now()->setMonth($month)->getTranslatedMonthName();
}

var_dump($monthNames);
what would work is adding setDay(1). Does anyone have any idea what causes this? Should I open a PR to add this to filament? Carbon Issue: https://github.com/briannesbitt/Carbon/issues/3097
GitHub
Translated months names off · Issue #3097 · briannesbitt/Carbon
Hello, I encountered an issue with the following code: foreach (range(1,12) as $month) { echo \Carbon\Carbon::now()->setMonth($month)->getTranslatedMonthName() . '<br>'; } Carbo...
4 Replies
Pascale
PascaleOP2mo ago
No description
Pascale
PascaleOP2mo ago
After some digging, this seems to be related to https://github.com/briannesbitt/Carbon/issues/2317 - So basically on the 31st on each month, the month selector filter breaks. I think this deserves a fix in filament itself.
GitHub
Potentional bug with ->month() && ->setMonth() Overflow vs. noOve...
Hello, I encountered an issue with the following code: $start = Carbon::parse('2021-03-31 23:00:00'); $start->month(4); echo $start; I reckon this should use noOverflow behind the scenes...
awcodes
awcodes2mo ago
If the issues is in carbon what can filament do about it.?
Pascale
PascaleOP2mo ago
We can fix it in filament 🙂 Dan already merged my pr
Want results from more Discord servers?
Add your server