digiaonline/graphql-datetime-scalar

此包已 弃用 并不再维护。没有建议的替代包。

针对我们的 GraphQL 实现的日期、时间和 DateTime 原子类型

1.0.0 2018-09-22 11:23 UTC

This package is auto-updated.

Last update: 2023-03-12 21:37:48 UTC


README

Build Status Coverage Status

针对我们的 GraphQL 实现的日期、时间和 DateTime 原子类型

介绍

大多数 GraphQL API 需要一种表示某种形式的日期、时间或时间戳的方式。由于 GraphQL 中没有原生的日期类型,人们不得不自己实现。为了减少需要编写的大量代码,这个库提供了一些基本的原子类型,应该可以覆盖大多数情况。

要求

使用

使用 Composer 安装库

composer require digiaonline/graphql-datetime-scalar

在配置你的可执行模式时,只需传递你需要的类型

$executableSchema = buildSchema($schemaDefinition, [
    'Query'    => QueryResolver::class,
    'Mutation' => MutationResolver::class,
], [
    'types' => [
        new DateScalarType(),
        new TimeScalarType(),
        new DateTimeScalarType(),
    ],
]);

尽管不是严格必要的,但在你的模式中提及这些类型可能是个好主意

scalar Date
scalar Time
scalar DateTime

你可以通过传递一个格式字符串到构造函数来指定格式

$dateType     = new DateScalarType('j.n.Y'); // 31.12.2018
$timeType     = new TimeScalarType('H:i'); // 14:35
$dateTimeType = new DateTimeScalarType('U'); // 1537361927

与内置的原子类型一样,如果值无法正确序列化或解析到 \DateTimeInterface,将抛出 \Digia\GraphQL\Error\InvalidTypeException

许可

MIT