【问题标题】:Converting String Values into Date using Carbon Laravel使用 Carbon Laravel 将字符串值转换为日期
【发布时间】:2019-02-22 02:44:39
【问题描述】:

sql 字段类型是 VARCHAR,我从 API 保存日期和时间。我得到的格式是 2018-04-28T22:17:41+05:30。现在我需要使用碳转换它以获得像 2018 年 4 月 4 日和时间这样的格式。我无法将 varchar 字段值转换为我需要的日期格式。

并且应该将预期的格式传递给查看,我使用 ( $ticket->dateOfIssue 并且它给出了这个 - 018-04-28T22:17:41+05:30 )。但正如我所说,我需要预期的格式(即 2018 年 4 月 4 日,时间)。

【问题讨论】:

    标签: laravel laravel-5


    【解决方案1】:

    请尝试,

    \Carbon\Carbon::parse('2018-04-28T22:17:41+05:30')->format('d- M- Y');
    

    输出是 28- Apr- 2018

    使用 sql

    DATE_FORMAT(mydate, '%d-%M-%Y')
    

    【讨论】:

    • 如何在控制器上使用它?我正在使用控制器从数据库中提取值! public function cancel() { $ticket = Booking::all()->where('status', '=', 'CANCELLED'); return view('Admin.Tickets.cancelledTickets')->with('ticket', $ticket); } !然后字段名称是数据库中的 dateOfIssue。现在使用 {{ $ticket->dateOfIssue }} 显示这个以查看。并且有120条记录。现在如何在控制器上实现这个来自动解析所有记录并显示在视图中?
    • @Arvindh 那么你需要在 sql 中转换日期。我更新答案请检查它
    【解决方案2】:

    您应该在模型上使用Accessor 或在模型上设置日期时间格式。前者的例子是:

    use Carbon/Carbon; before your class declaration
    
    public function getDateOfIssueAttribute($value) {
        return Carbon::parse($value)->format('d M Y , H:m:s');
    }
    

    当您在任何地方以您在访问器中设置的格式检索此模型时。

    【讨论】:

      【解决方案3】:

      这是日期和时间的确切格式。首先在你的控制器中包含碳库

      use Carbon\Carbon;
      class abc extend Controller
      {
          public function cancell() 
          { 
          $ticket = Booking::all()->where('status', '=', 'CANCELLED');
          $dateOfIssue=$ticket->dateOfIssue;
          $time = Carbon::parse($dateOfIssue)->format('d M Y , H:m:s'); 
      
          return view('Admin.Tickets.cancelledTickets')->with('ticket', $ticket); 
          }
      
      
      }
      

      如果你有多个记录,那么你可以使用循环

      【讨论】:

      • 如何在控制器上使用它?我正在使用控制器从数据库中提取值! public function cancell() { $ticket = Booking::all()->where('status', '=', 'CANCELLED'); return view('Admin.Tickets.cancelledTickets')->with('ticket', $ticket); }!然后字段名称是数据库中的 dateOfIssue。现在显示这个以使用{{ $ticket->dateOfIssue }} 查看。并且有120条记录。现在如何在控制器上实现这个来自动解析所有记录并显示在视图中?
      • 我收到一条错误消息,指出此集合实例上不存在属性 [dateOfIssue]。
      【解决方案4】:

      你试试

      use use Carbon\Carbon; // on top
      
      $time = Carbon::parse('2018-04-28T22:17:41+05:30')->format('d M Y'); //28 Apr 2018
      

      祝你好运

      【讨论】:

      • 如何在控制器上使用它?我正在使用控制器从数据库中提取值! public function cancell() { $ticket = Booking::all()->where('status', '=', 'CANCELLED'); return view('Admin.Tickets.cancelledTickets')->with('ticket', $ticket); }!然后字段名称是数据库中的 dateOfIssue。现在显示这个以使用{{ $ticket->dateOfIssue }} 进行查看。并且有120条记录。现在如何在控制器上实现这个来自动解析所有记录并显示在视图中?
      • 哦,你使用 eloquent ,你应该使用 Accessors & Mutators。链接:[laravel.com/docs/5.6/eloquent-mutators#accessors-and-mutators]public function getDateOfIssueAttribute($time) { return Carbon::parse($time)->format('d M Y'); } 并鉴于您使用{{ $ticket->dateOfIssue }}
      【解决方案5】:

      这是一个解析日期的例子

      Carbon::parse('2018-04-28T22:17:41+05:30')->format('dd MM YYYY');
      

      此外,不要忘记在顶部导入 Carbon 命名空间

      【讨论】:

      • 如何在控制器上使用它?我正在使用控制器从数据库中提取值! public function cancell() { $ticket = Booking::all()->where('status', '=', 'CANCELLED'); return view('Admin.Tickets.cancelledTickets')->with('ticket', $ticket); }!然后字段名称是数据库中的 dateOfIssue。现在显示这个以使用{{ $ticket->dateOfIssue }} 进行查看。并且有120条记录。现在如何在控制器上实现这个来自动解析所有记录并显示在视图中?
      • public function cancell() { $ticket = Booking::all()->where('status', '=', 'CANCELLED'); return view('Admin.Tickets.cancelledTickets')->with('ticket', $ticket); } 这是我的控制器代码,数据库中的字段名称是 dataOfIssue,但它是 varchar。所以我需要用碳把它改成另一种格式。并且有 120 条记录,所以这应该自动执行,以便视图中的 120 条记录显示预期格式
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-01-05
      • 1970-01-01
      • 2015-04-27
      • 2011-11-28
      • 2018-03-09
      • 2015-08-24
      相关资源
      最近更新 更多