I have this transaction exporter,
why do created_at on my transactions export is not formatted just like in my local
July 8, 2025 1:22 PM
this is in the staging
2025-07-08 04:31:10
but the user export was ok
User Export
<?php
namespace App\Filament\Exports;
use App\Models\User;
use Filament\Actions\Exports\ExportColumn;
use Filament\Actions\Exports\Exporter;
use Filament\Actions\Exports\Models\Export;
class UserExporter extends Exporter
{
protected static ?string $model = User::class;
public static function getColumns(): array
{
return [
ExportColumn::make('id')
->label('ID'),
// ExportColumn::make('merchant.name'),
ExportColumn::make('name'),
// ExportColumn::make('mobile'),
ExportColumn::make('email'),
// ExportColumn::make('role')
// ->formatStateUsing(fn ($state) => $state?->label ?? $state?->name),
ExportColumn::make('role')
->formatStateUsing(fn ($state) => $state->value ?? ''),
ExportColumn::make('created_at')
->label('Created At')
->formatStateUsing(fn ($state) =>
$state?->timezone('Asia/Manila')->format('F, d, Y g:i A') ?? ''
),
ExportColumn::make('updated_at')
->label('Updated At')
->formatStateUsing(fn ($state) =>
$state?->timezone('Asia/Manila')->format('F, d, Y g:i A') ?? ''
),
];
}
public static function getCompletedNotificationBody(Export $export): string
{
$body = 'Your user export has completed and ' . number_format($export->successful_rows) . ' ' . str('row')->plural($export->successful_rows) . ' exported.';
if ($failedRowsCount = $export->getFailedRowsCount()) {
$body .= ' ' . number_format($failedRowsCount) . ' ' . str('row')->plural($failedRowsCount) . ' failed to export.';
}
return $body;
}
}
Transaction Export
<?php
namespace App\Filament\Exports;
use Carbon\Carbon;
use App\Models\Transaction;
use Filament\Actions\Exports\Exporter;
use Filament\Actions\Exports\ExportColumn;
use Filament\Actions\Exports\Models\Export;
class TransactionExporter extends Exporter
{
protected static ?string $model = Transaction::class;
public static function getColumns(): array
{
return [
ExportColumn::make('id')
->label('ID'),
ExportColumn::make('transaction_date')
->label('Transaction Date')
->formatStateUsing(fn ($state) =>
$state?->timezone('Asia/Manila')->format('F j, Y') ?? ''
),
ExportColumn::make('reference_code'),
ExportColumn::make('merchant.name'),
ExportColumn::make('type')
->formatStateUsing(fn ($state) => $state instanceof \App\Services\Points\Enums\Type ? $state->labelAdmin() : ucfirst((string) $state)),
ExportColumn::make('member.name'),
ExportColumn::make('purchased_amount'),
ExportColumn::make('points')
->formatStateUsing(fn ($state) => (int) $state),
ExportColumn::make('points_before'),
ExportColumn::make('points_after'),
ExportColumn::make('purchase_id'),
ExportColumn::make('transacted.name')
->label('Transacted By')
->formatStateUsing(fn ($state, $record) => $record->transacted?->name ?? '-'),
ExportColumn::make('created_at')
->label('Created At')
->formatStateUsing(fn ($state) =>
$state?->timezone('Asia/Manila')->format('F, d, Y g:i A') ?? ''
),
];
}
public static function getCompletedNotificationBody(Export $export): string
{
$body = 'Your transaction export has completed and ' . number_format($export->successful_rows) . ' ' . str('row')->plural($export->successful_rows) . ' exported.';
if ($failedRowsCount = $export->getFailedRowsCount()) {
$body .= ' ' . number_format($failedRowsCount) . ' ' . str('row')->plural($failedRowsCount) . ' failed to export.';
}
return $body;
}
}