【问题标题】:Localizing Dates in CakePHP 3 does not workCakePHP 3 中的本地化日期不起作用
【发布时间】:2016-05-17 04:22:31
【问题描述】:

我尝试将我的应用程序中的输入和输出本地化为德语,但遇到以下设置问题:

在我托管的 WebSpace 上通过 SSH/Composer 安装了 CakePHP 3.2.1。

创建了一个数据库,其中只有一个表“发票”用于测试,列“id”、“datum”(日期时间)和“amount”(十进制 10,2)。

用“bin/cake bake all invoices”烘焙。

通过 SSH 使用“locale -a”检查了我的网络托管商的本地化缩写...

de_DE
de_DE@euro
de_DE.iso88591
de_DE.iso885915@euro
de_DE.utf8
de_DE.utf8@euro

编辑配置/bootstrap.php:

ini_set('intl.default_locale', 'de_DE');

在 /src/Template/Invoices/add.ctp 中添加了一些 php-test-output:

<?php
    use Cake\I18n\I18n;
    use Cake\I18n\Time;
    $now = Time::now();
    echo $now->i18nFormat('dd.MM.yyyy HH:mm:ss');
    echo " +++ ";
    echo $now->i18nFormat('l, N. F Y');
?>
<nav class="large-3 medium-4 columns" id="actions-sidebar">
    <ul class="side-nav">
        <li class="heading"><?= __('Actions') ?></li>
        <li><?= $this->Html->link(__('List Invoices'), ['action' => 'index']) ?></li>
    </ul>
</nav>
<div class="invoices form large-9 medium-8 columns content">
    <?= $this->Form->create($invoice) ?>
    <fieldset>
        <legend><?= __('Add Invoice') ?></legend>
        <?php
            echo $this->Form->input('datum');
            echo $this->Form->input('betrag');
        ?>
    </fieldset>
    <?= $this->Form->button(__('Submit')) ?>
    <?= $this->Form->end() ?>
</div>

这是我的 php 测试输出:

07.02.2016 12:42:19 +++ ,

如您所见,第一个输出看起来像德国日期时间格式,但我必须手动传递格式,就像我使用普通 php 代码一样,所以我在哪里可以告诉 CakePHP 总是使用这种格式作为日期或整个应用内的时间字段?

在“++​​+”之后,我期望得到以下输出,但只有逗号:

Sonntag, 7. Februar 2016

输入字段是否也可以使用本地化格式?我该月的下拉字段“基准”仍然有英文名称,并且该日期的前 3 个下拉字段的顺序是错误的。

如果您能告诉我如何在 CakePHP 表单输入元素和任意输出数据中获取本地本地化的德国日期、数字和货币,我将不胜感激。

在此先致谢并致以最诚挚的问候,

老兄

【问题讨论】:

    标签: php cakephp cakephp-3.0 date-formatting intl


    【解决方案1】:

    i18n 日期使用IntlDateFormatter 格式化,它使用 ISO 日期格式模式,而不是默认的 PHP 日期模式。

    l 已被弃用,并且不会产生任何输出,N 似乎根本不是一个可识别的符号,它是导致其余模式失败的原因,我不知道为什么会这样。

    无论如何,对于有效的符号,请检查示例

    您要查找的模式是EEEE, d. MMMM Y

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-03
      • 1970-01-01
      • 2019-01-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多