【问题标题】:DateTime format in YAML configurationYAML 配置中的日期时间格式
【发布时间】:2023-03-05 12:11:01
【问题描述】:

配置 JMSSerializerBundle,我只找到了 Annotations 日期格式的示例,但没有找到如何在 YAML 中设置的示例,所以:

这在 YAML 中是等价的

@Type("DateTime<'Y-m-d'>")

目前,这是可行的,

dob:
  expose: true
  type: DateTime

但输出是主配置中的一组,所以

handlers:
        datetime:
            default_format: "c" # ISO8601
            default_timezone: "UTC"

输出

"1982-06-06T00:00:00+02:00"

我希望它是

"1982-06-06"

因为是出生日期,我不在乎时间

【问题讨论】:

  • default_format: "Y-m-d"
  • @malcolm 你的意思是在主配置中吗?我想按字段而不是全局执行此操作,因为我还将完全表示日期时间。在序列化配置中使用 default_format 会引发“无法在第 24 行解析(靠近 \” default_format: \"Y-m-d\"\")我虽然有一个 Date 选项而不是 DateTime 但它似乎不起作用
  • 您找到解决方案了吗?
  • @dVaffection 实际上不是。我终于改成注解进行序列化了。我只是使用@JMS\Type("DateTime")

标签: php datetime yaml symfony


【解决方案1】:

这个 sn-p 对我有用

AcmeBundle\Document\User:
  properties:
    id:
      type: string
      groups: [list, detailed]
    #...
    birthday:
      type: DateTime<'Y-m-d'>
      groups: [detailed]
    #...
    createdAt:
      type: DateTime<'Y-m-d H:i:s'>
      groups: [detailed]    

您当然可以在全局配置中指定一种默认格式,然后在需要时在属性级别对其进行自定义(在您的情况下为生日)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多