Fix Rsx_DateTime_Cast to handle microsecond timestamps after save()
Fix sidebar not displaying: use custom breakpoint classes 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -46,11 +46,15 @@ class Rsx_DateTime_Cast implements CastsAttributes
|
||||
// MySQL format "YYYY-MM-DD HH:MM:SS" - convert to ISO
|
||||
if (is_string($value) && preg_match('/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}/', $value)) {
|
||||
// Database stores in UTC, parse as UTC
|
||||
$carbon = Carbon::createFromFormat(
|
||||
strlen($value) > 19 ? 'Y-m-d H:i:s.v' : 'Y-m-d H:i:s',
|
||||
$value,
|
||||
'UTC'
|
||||
);
|
||||
// Handle fractional seconds: truncate to 3 digits for .v format (milliseconds)
|
||||
// This handles microseconds (6 digits) from Laravel/Carbon after save()
|
||||
if (strlen($value) > 19) {
|
||||
$value = preg_replace('/(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2})\.(\d{3})\d*/', '$1.$2', $value);
|
||||
$format = 'Y-m-d H:i:s.v';
|
||||
} else {
|
||||
$format = 'Y-m-d H:i:s';
|
||||
}
|
||||
$carbon = Carbon::createFromFormat($format, $value, 'UTC');
|
||||
return $carbon->format('Y-m-d\TH:i:s.v\Z');
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user