【问题标题】:date format - Regional settings - Months in lowercase日期格式 - 区域设置 - 小写月份
【发布时间】:2022-01-12 09:17:45
【问题描述】:

我是个菜鸟(我承认这一点),无法找到解决问题的方法。

我在 Drupal 上设置日期格式,它使用 PHP 日期格式。

现在它是“d F Y”,因此它显示为 07 Dicembre 2021(意大利语),但在意大利语中,月份以小写形式写出。有没有办法将 Dicembre 变成 dicembre?我找不到合适的方法。

感谢您的帮助!

【问题讨论】:

  • 如果您能提供更多关于代码的信息,我们或许可以为您解决,并为您提供完整的代码,(您可以从内部编辑的内容中向我们提供什么代码?)。
  • 尝试将 'F' 更改为 'M' 它很可能会显示月份及其各自的前 3 个字符。例如'December' 将显示为'Dec',因此您可以确保问题是脚本方面的,而不是选项方面的。很简单,更改这两个并检查December 是否显示为"Dec" 而不是"DEC",如果它仍然显示为大写,那么您将不得不编辑此表单后面的脚本。

标签: php date drupal


【解决方案1】:

使用strtolower() 输出将如您所料:

<?php echo strtolower(date("M"),2);?>

因此,要仅针对月份实现它,只需将日期格式分成 3 个部分。日、月、年。

【讨论】:

  • 没有必要使用 'substr' 因为数字不是小写或大写;) 所以只使用 strtolower 就足够了:``` ```
【解决方案2】:

使用 drupal 模块: https://www.drupal.org/project/simple_field_formatter

转到:

/admin/structure/types/manage/[YOURTYPE]/display

对于您的日期字段,单击右侧的齿轮(格式设置)并激活 strtolower 复选框

或者创建自己的 FieldFormatter:https://www.webwash.net/how-to-create-a-custom-field-formatter-in-drupal-8/

【讨论】:

    【解决方案3】:

    您应该使用可识别区域设置的 strftime,它根据当前区域设置进行格式化。

    
    setlocale(LC_TIME, "it_IT");
    echo strftime("%d %B %Y"); // 07 dicembre 2021
    

    【讨论】:

    • 谢谢,但我只能编辑屏幕截图中显示的字段:-(
    • 当前输出已经是意大利语了吗?因为 date 函数的 PHP 文档声明“要格式化其他语言的日期,您应该使用 setlocale() 和 strftime() 函数而不是 date()。”有关格式,请参阅 php.net/manual/en/datetime.format.php。您是否尝试在文本字段中将格式设置为“%d %B %Y”?
    猜你喜欢
    • 2011-01-22
    • 2018-12-02
    • 2018-07-02
    • 2019-04-20
    • 1970-01-01
    • 2014-06-14
    • 1970-01-01
    • 2014-12-23
    • 1970-01-01
    相关资源
    最近更新 更多