Timezones are one of easiest ways to get confused with FileMaker integrations.
Timezone issues show up when the same date or timestamp is viewed in more than one place and those places do not apply the same timezone assumptions.
With FileMaker systems, that usually means:
easy-fm does not force UTC by default.
Instead, it formats outgoing dates and timestamps using timezone offset function attached to FMHost.
Default behavior:
const host = new FMHost("https://example.com")
Default offset function uses current runtime timezone offset.
Many easy-fm projects also use FileMaker Pro as part of normal operation.
Default behavior is aimed at keeping easy-fm results aligned with what users are likely to see in FileMaker UI.
In practice:
Date into record.commit(), easy-fm formats it using host timezone rulesasDate, asTime, or asTimestamp in a find request, easy-fm formats those values using same host timezone ruleseasy-fm uses current runtime timezone offsetDefault usually fine when:
Customize when:
easy-fmPass second constructor argument to FMHost:
import moment from "moment"
import FMHost from "@jd-data-limited/easy-fm"
const nzOffset = (_value: moment.Moment) => 12 * 60
const host = new FMHost("https://example.com", nzOffset)
Function returns offset in minutes.
Library uses it when:
asDate, asTime, asTimestampDate values during record.commit()