如何在 Drupal 8 中创建 Y(仅限年份)日期时间字段?

问题描述 投票:0回答:2

日期时间模块,Drupal 8:我想创建一个具有年粒度的日期时间字段。Drupal 7中,这没有问题。现在在Drupal 8中,这不再可能了。由于不安全,如何在没有 Years Only 模块的情况下创建这样的字段?我可以写一个主题函数吗?如果是这样,我该怎么做?

摘自 datetime.module:

/** * 定义日期和时间的存储格式。*/

const DATETIME_DATETIME_STORAGE_FORMAT = 'Y-m-d\TH:i:s';

/** * 定义日期存储的格式。*/

const DATETIME_DATE_STORAGE_FORMAT = '年-月-日';

datetime drupal-8 granularity
2个回答
2
投票

该模块用于收集任何字段中日期的年份部分。它在字段 UI 中提供了自定义字段类型 Year Only。

借助此模块,人们可以添加他/她想要仅获取年份而不是完整日期的字段。

https://www.drupal.org/project/yearonly

最新发布日期为 2017 年 10 月 24 日,就在您发布此问题 2 天后。所以,它不被 Drupal 覆盖。

希望有帮助


0
投票

如果目标只是更改内容编辑显示,并且您可以存储完整的日期时间值(该值本身可以通过字段配置设置为仅显示为年份),则表单更改将完成这项工作:

function MYMODULE_form_alter(&$form, &$form_state, $form_id) {
  if ($form_id !== 'MYFORM') {
    return;
  }
  $form['MYFIELD']['widget'][0]['value']['#date_part_order'] = ['year'];
}

© www.soinside.com 2019 - 2024. All rights reserved.