【问题标题】:Change date format Laravel更改日期格式 Laravel
【发布时间】:2017-08-29 06:14:54
【问题描述】:

我来自印度尼西亚,我想用印度尼西亚语言格式显示日期,但我得到的是英语格式。

示例格式为 2017 年 3 月 23 日 (英文)

我想要这样一个 23 Maret 2017 (印度尼西亚) 所以我的问题是语言。

你能给我一些想法吗?这是我的示例代码

<?php echo date("d F Y", strtotime($row->tanggal_pelaksanaan)); ?>

Tgl: @foreach ($tindak as $tindakan)
     {{ date("d F Y", strtotime($tindakan->target_verifikasi)) }}
     @endforeach

请帮助我。谢谢。

【问题讨论】:

  • 您可以在正确的语言环境中使用 strftime() 函数。
  • 使用碳库。
  • @Autista_z 例如如何做到这一点??
  • @Gaurav 如果我使用碳,我这次是本地的,对吗?不能从数据库转换吗?或者如何使用?
  • 在 config/app.php 中的 aliases 数组中加入以下行:'Carbon' =&gt; 'Carbon\Carbon' 并且需要添加 use Carbon;您想使用它的每个类。 {{ $quotes-&gt;created_at-&gt;format('d m Y i');

标签: php laravel datetime laravel-5.2


【解决方案1】:
$dateName = Carbon::now()->locale('id')->isoFormat('LL'); //return 17 Mei 2020 

$dateName = Carbon::now()->locale('id')->isoFormat('LLLL');  //return Minggu, 17 Mei 2020 pukul 10.21

试试这个代码 你可以查看https://carbon.nesbot.com/docs/#api-localization

【讨论】:

    【解决方案2】:

    您不能依赖服务器区域设置,因为大多数应用程序都在自己的设备上以自己的区域设置格式运行。您可以为自己的设备安装语言环境格式,但不能为其他设备安装,因为他们有自己的语言环境时区。

    使用另一种方法,例如:

    {{ date('d-m-y', strtotime($example->start_date))}}
    

    上面的代码会改变

    yyyy-mm-dd

    格式化为

    d-m-y

    2019-05-01 至 01-05-19

    或者

    {{ date('l, d-m-y', strtotime($example->start_date))}}
    

    输出:

    2019 年 1 月 5 日,星期五

    希望对你有帮助。

    【讨论】:

      【解决方案3】:

      Laravel Eloquent 允许您从模型中格式化,以便您可以这样做

      $model->created_at->format('Y-m-d')
      

      为此,您应该添加

      $protected $dates = [
          'created_at',
          'updated_at',
          // add other column names here that you want as Carbon Date
      ];
      

      然后,这会将列更改为易于操作的日期对象

      更多详情请见https://laravel.com/docs/5.4/eloquent-mutators#date-mutators

      【讨论】:

        【解决方案4】:
        1. 查看您的服务器中是否安装了语言环境。

          您可以通过发出命令列出服务器中的所有语言环境

          locale -a

        2. 安装您的语言环境。印度尼西亚语言环境,我相信是 id_ID 通过发出命令。语言环境列表是从这个答案https://stackoverflow.com/a/28357857/5808894

          中获得的

          sudo locale-gen id_ID

          sudo update-locale

        3. 使用setlocale方法设置语言环境

          setlocale(LC_TIME, 'id_ID');

        4. 使用Carbonstrftime 输出本地化日期

          strftime("%a %d %b %Y", strtotime(date('Y-m-d')))

          Carbon\Carbon::parse('23-03-2017 11:23:45')-&gt;formatLocalized('%A %d %B %Y');

          输出 Kamis 23 Maret 2017

        【讨论】:

        • 如果我使用 Windows,我该怎么办?我应该把setlcoale放在哪里?
        • setlocale 是一个 php 函数。你的意思是如何在 Windows 中安装语言环境?
        • 在第 1 步和第 2 步中它使用了 sudo .. 所以我应该使用 cmd 吗?
        • 顺便说一句,我如何在刀片上使用? strftime("%a %d %b %Y", strtotime(date('Y-m-d'))) on this tanggal)); ?>
        • &lt;?php echo strftime("%a %d %b %Y", strtotime($keluhan-&gt;tanggal)); ?&gt;
        猜你喜欢
        • 1970-01-01
        • 2016-09-05
        • 1970-01-01
        • 1970-01-01
        • 2020-05-02
        • 2011-06-05
        • 2016-11-22
        相关资源
        最近更新 更多