@@ -12,20 +12,24 @@ public static function fromJson(array $data): self
1212 {
1313 if ($ startDateTime = Arr::get ($ data , 'StartDateTime ' )) {
1414 $ startDateTime = Str::of ($ startDateTime )->after ('( ' )->before (') ' );
15- $ startDateTime = Carbon::createFromTimestamp ($ startDateTime );
15+ // Extract milliseconds part (ignore optional timezone offset like +0000)
16+ $ milliseconds = (int ) (string ) $ startDateTime ;
17+ $ startDateTime = Carbon::createFromTimestampMs ($ milliseconds , 'UTC ' );
1618 }
1719
1820 if ($ endDateTime = Arr::get ($ data , 'EndDateTime ' )) {
1921 $ endDateTime = Str::of ($ endDateTime )->after ('( ' )->before (') ' );
20- $ endDateTime = Carbon::createFromTimestamp ($ endDateTime );
22+ // Extract milliseconds part (ignore optional timezone offset like +0000)
23+ $ milliseconds = (int ) (string ) $ endDateTime ;
24+ $ endDateTime = Carbon::createFromTimestampMs ($ milliseconds , 'UTC ' );
2125 }
2226
2327 return new self (
2428 isOutOfOffice: Arr::get ($ data , 'IsOutOfOffice ' ),
2529 startDateTime: $ startDateTime ,
2630 startDateTimeSpecified: Arr::get ($ data , 'StartDateTimeSpecified ' ),
2731 endDateTime: $ endDateTime ,
28- endDateTimeSpecified: Arr::get ($ data , 'EndDateTimeSpecified ' ),
32+ endDateTimeSpecified: Arr::get ($ data , key: 'EndDateTimeSpecified ' ),
2933 );
3034 }
3135
0 commit comments