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
|
// 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)) {
|
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
|
// Database stores in UTC, parse as UTC
|
||||||
$carbon = Carbon::createFromFormat(
|
// Handle fractional seconds: truncate to 3 digits for .v format (milliseconds)
|
||||||
strlen($value) > 19 ? 'Y-m-d H:i:s.v' : 'Y-m-d H:i:s',
|
// This handles microseconds (6 digits) from Laravel/Carbon after save()
|
||||||
$value,
|
if (strlen($value) > 19) {
|
||||||
'UTC'
|
$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');
|
return $carbon->format('Y-m-d\TH:i:s.v\Z');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user