GraphQL 将时间字段转换为数字
GraphQL transforming time field to number
我在降价文件(在 netlify cms 中生成)中有如下内容:
我不确定 vs code 中的语法突出显示是否正在处理 startTime
和 endTime
的值,或者这是 markdown 本身的东西还是它在 netlify 中的创建方式cms.
但无论哪种方式,graphQL 似乎都将一个读取为数字,将另一个读取为字符串:
我尝试按如下方式在 gatsby-node.js
中创建类型定义,但是当我检查控制台输出时,我发现为时已晚,它被赋予值 1200 和 1080 而不是 18:00和 20:00
exports.createSchemaCustomization = ({ actions, schema }) => {
const { createTypes } = actions
const typeDefs = [
schema.buildObjectType({
name: 'MarkdownRemark',
fields: {
frontmatter: 'Frontmatter!'
},
interfaces: ['Node'],
extensions: {
infer: true,
},
}),
schema.buildObjectType({
name: 'Frontmatter',
fields: {
startTime: {
type: 'String!',
resolve(parent) {
console.log(parent.startTime);
return `${parent.startTime}`;
}
},
endTime: {
type: 'String!',
resolve(parent) {
console.log(parent.endTime);
return `${parent.endTime}`;
}
}
}
}),
]
createTypes(typeDefs)
}
有什么方法可以在 Netlify 的 config.yml 中指定不将此字段视为数字?还是我看错地方了?
这就是我在 config.yml 中声明字段的方式:
- { label: "Start Time", name: startTime, widget: string}
- { label: "End Time", name: endTime, widget: string}
但是现在当我查看 github 时,我看到了一些非常奇怪的结果:
在你的 config.yml
中使用 Netlify 提供的 datetime
widget and the format options:
- { name: startTime, label: "Start Time", widget: datetime, date_format: MM/DD/YYYY, time_format: false, format: L }
- { name: endTime, label: "EndTime", widget: datetime, date_format: MM/DD/YYYY, time_format: false, format: L },
将您的 date_format(MM/DD/YYYY)
更改为任何所需的格式。
请记住,Netlify datetime
小部件使用 momentjs
,检查它们的格式选项以获得适合您的格式。
我在降价文件(在 netlify cms 中生成)中有如下内容:
我不确定 vs code 中的语法突出显示是否正在处理 startTime
和 endTime
的值,或者这是 markdown 本身的东西还是它在 netlify 中的创建方式cms.
但无论哪种方式,graphQL 似乎都将一个读取为数字,将另一个读取为字符串:
我尝试按如下方式在 gatsby-node.js
中创建类型定义,但是当我检查控制台输出时,我发现为时已晚,它被赋予值 1200 和 1080 而不是 18:00和 20:00
exports.createSchemaCustomization = ({ actions, schema }) => {
const { createTypes } = actions
const typeDefs = [
schema.buildObjectType({
name: 'MarkdownRemark',
fields: {
frontmatter: 'Frontmatter!'
},
interfaces: ['Node'],
extensions: {
infer: true,
},
}),
schema.buildObjectType({
name: 'Frontmatter',
fields: {
startTime: {
type: 'String!',
resolve(parent) {
console.log(parent.startTime);
return `${parent.startTime}`;
}
},
endTime: {
type: 'String!',
resolve(parent) {
console.log(parent.endTime);
return `${parent.endTime}`;
}
}
}
}),
]
createTypes(typeDefs)
}
有什么方法可以在 Netlify 的 config.yml 中指定不将此字段视为数字?还是我看错地方了?
这就是我在 config.yml 中声明字段的方式:
- { label: "Start Time", name: startTime, widget: string}
- { label: "End Time", name: endTime, widget: string}
但是现在当我查看 github 时,我看到了一些非常奇怪的结果:
在你的 config.yml
中使用 Netlify 提供的 datetime
widget and the format options:
- { name: startTime, label: "Start Time", widget: datetime, date_format: MM/DD/YYYY, time_format: false, format: L }
- { name: endTime, label: "EndTime", widget: datetime, date_format: MM/DD/YYYY, time_format: false, format: L },
将您的 date_format(MM/DD/YYYY)
更改为任何所需的格式。
请记住,Netlify datetime
小部件使用 momentjs
,检查它们的格式选项以获得适合您的格式。