From 475fc333ab76718479a6285e7a1056d173a0e809 Mon Sep 17 00:00:00 2001 From: root Date: Tue, 6 Jan 2026 07:49:46 +0000 Subject: [PATCH] Fix Rsx_DateTime_Cast to handle microsecond timestamps after save() Fix sidebar not displaying: use custom breakpoint classes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- app/RSpade/Core/Time/Rsx_DateTime_Cast.php | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/app/RSpade/Core/Time/Rsx_DateTime_Cast.php b/app/RSpade/Core/Time/Rsx_DateTime_Cast.php index dd1f3a025..9ec079160 100644 --- a/app/RSpade/Core/Time/Rsx_DateTime_Cast.php +++ b/app/RSpade/Core/Time/Rsx_DateTime_Cast.php @@ -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'); }