# Tijdzone-fix voor `evenementen/create` en `stadsactiviteiten/create` (Drupal 7, custom.module) **Symptoom (gemeten 2026-09-13, nid 217916):** de app stuurt `"datum_start":"2026-09-25 20:20:00"` (lokale Nederlandse tijd), de site toont **22:20**. Drupal leest de string als UTC en rendert in Europe/Amsterdam. **Fix — in `custom.evenementen_aanmaken.inc`, op de plek waar `datum_start` (en `datum_eind`) naar `field_date` gaat.** Interpreteer de binnenkomende string expliciet als Amsterdamse tijd en sla 'm als UTC op (Date-veld met `timezone_db = UTC`, de gebruikelijke instelling): ```php /** * Zet een lokale (Europe/Amsterdam) datumstring om naar de UTC-string die * een Date-veld met timezone_db = 'UTC' verwacht. */ function _custom_lokaal_naar_utc($s) { $s = trim($s); if ($s === '') { return ''; } try { $d = new DateTime($s, new DateTimeZone('Europe/Amsterdam')); } catch (Exception $e) { return $s; // ongeldig formaat: laat de bestaande validatie het afvangen } $d->setTimezone(new DateTimeZone('UTC')); return $d->format('Y-m-d H:i:s'); } ``` en dan waar de waarde gezet wordt (naam van de variabelen kan afwijken): ```php $start = _custom_lokaal_naar_utc($data['datum_start']); $eind = !empty($data['datum_eind']) ? _custom_lokaal_naar_utc($data['datum_eind']) : $start; $node->field_date[LANGUAGE_NONE][0]['value'] = $start; $node->field_date[LANGUAGE_NONE][0]['value2'] = $eind; $node->field_date[LANGUAGE_NONE][0]['timezone'] = 'Europe/Amsterdam'; $node->field_date[LANGUAGE_NONE][0]['timezone_db'] = 'UTC'; ``` **Controleer eerst** hoe het veld is ingesteld: `timezone_db` van `field_date` (Structure → Content types → Evenement → field_date → "Time zone handling"). Staat die op *"No time zone conversion"* / `timezone_db = ''`, dan is de fix juist omgekeerd: dan moet de string ongewijzigd opgeslagen worden en zit de +2u in de *weergave* (views-datumformat met tijdzone). **Verificatie:** één testevenement indienen met 20:20 en in `flutterflow_events.json?nid=` moet `datum` op `20:20` uitkomen. Dezelfde route geldt voor `stadsactiviteiten/create` (zelfde helper hergebruiken). **Aan de app-kant is niets nodig** — die stuurt bewust lokale tijd; als je hier UTC gaat verwachten, moet `datumVoorApi`/de Date-Format-binding in de app mee.