“日期”和“日期时间”可能很棘手。例如,“15:00”是太平洋时间下午 3:00?
许多(大多数)实现通过将“日期时间”存储为相对于某个“纪元”的大整数来解决问题。例如,“0”可能表示“自 1970 年 1 月 1 日以来的秒数”。
也许您可能会考虑将 GraphQL“DateTime”存储为 ISO 8601 字符串,或使用此模块:https ://www.npmjs.com/package/graphql-iso-date
在“模式”级别(相对于 JS 代码,正如我上面建议的那样),您可能会考虑这个:
GraphQL 规范
3.5 标量:
标量 ScalarType 定义 说明 optscalarNameDirectivesConstopt 标量类型表示 GraphQL 类型系统中的原始叶值。GraphQL 响应采用分层树的形式;这些树上的叶子是 GraphQL 标量。
所有 GraphQL 标量都可以表示为字符串,尽管根据所使用的响应格式,给定的标量类型可能有更合适的原语,并且服务器应该在适当的时候使用这些类型。
GraphQL 提供了许多内置的标量,但类型系统可以添加具有语义含义的附加标量。例如,一个 GraphQL 系统可以定义一个称为 Time 的标量,虽然它被序列化为一个字符串,但它承诺符合 ISO-8601。当查询时间类型的字段时,您可以依靠使用 ISO-8601 解析器解析结果并使用客户端特定原语来获取时间的能力。