'待执行', 'ongoing' => '进行中', 'completed' => '已完成', 'cancelled' => '已取消', ]; $st = (string)($node['status'] ?? 'planned'); if (!isset($statusLabels[$st])) $st = 'planned'; $sLoc = json_decode_field($node['start_location'] ?? null); $eLoc = json_decode_field($node['end_location'] ?? null); $transportParts = []; foreach (['trip_number', 'line_name', 'carrier', 'seat_info', 'gate'] as $field) { if (!empty($node[$field])) $transportParts[] = $node[$field]; } $durationText = ''; if (!empty($node['duration_minutes'])) { $mins = (int)$node['duration_minutes']; $durationText = $mins >= 60 ? intdiv($mins, 60) . ' 小时 ' . ($mins % 60) . ' 分' : $mins . ' 分钟'; } ?>
时间 → ()
类型
出行方式
交通细节
起点 📍
终点 📍
描述
取消原因