【问题标题】:Laravel Carbon format dateLaravel Carbon 格式日期
【发布时间】:2016-12-01 23:52:43
【问题描述】:

我正在通过 ajax 从我的表单中发布一个日期,格式为。

27/07/2016

当它到达我的控制器时,我将格式转换为 Y-m-d,因为它像这样存储在我的数据库中。

但是我收到以下错误:

DateTime::__construct(): 无法解析时间字符串 (27/07/2016) 位置 0 (2):意外字符

我的控制器

public function call(Request $request)
    {              
        return Company->expenses()->where('date_expense', Carbon::parse($request->start)->format('Y-m-d'))->get();
    }

在我的费用模型中,我将以下定义为日期:

protected $dates = ['date_expense'];

【问题讨论】:

  • 您在寻找时间戳时传递了一个日期,请先转换为时间戳,然后将其传入。
  • 如何更改?对不起@VikingBlooded
  • format("Y-m-d H:i:s)
  • 尝试使用Carbon::createFromFormat 而不是Carbon::parse

标签: php laravel eloquent php-carbon


【解决方案1】:

如果你的 laravel 框架版本是 5.0+ 你可以通过php artisan -V查看

我的是Laravel Framework 5.4.19 你可以参考laravel文档https://laravel.com/docs/5.4/eloquent-mutators#date-mutators

以下是一个例子:

  1. 如果你的 laravel 框架不包含 Carbon,你可以运行

    composer require nesbot/carbon

  2. 在您的模型上,例如 Post 模型

类帖子扩展模型` { 受保护的 $fillable = ["title","body"];` 受保护的 $dates = [` 'created_at',` 'updated_at',` 'deleted_at'` ]; }
  1. 使用 tinker 添加帖子 打开项目目录下的终端 跑步 php artisan tinker

App\Post::create("title"=>"This is Title","body"=>"this is body")

然后你就可以得到 Carbon 最新创建的帖子 created_at

App\Post::latest()->get()->created_at->diffForHumans()

你也可以像这样在刀片中使用相同的方法 {{ $post->created_at->diffForHumans() }}

Carbon文档url如下:http://carbon.nesbot.com/docs/

【讨论】:

    【解决方案2】:

    使用

    Carbon::createFromFormat('d/m/Y', $request->start)->format('d/m/Y')
    

    你必须用这个来改变你的代码

    return Company->expenses()->where('date_expense', Carbon::createFromFormat('d/m/Y', $request->start)->format('Y-m-d'))->get();
    

    【讨论】:

      【解决方案3】:

      使用 Carbon 的 Carbon::createFromFormat($format, $time, $tz); 方法:

      $start = Carbon::createFromFormat('d/m/Y', $request->start);
      
      return Company->expenses()->where('date_expense', $start)->get();
      

      顺便说一句,没有必要进一步格式化日期,因为 Laravel 知道如何处理 Carbon 对象,并且会在幕后自动为您完成。

      【讨论】:

      • 它不会是 dd/mm/yyyy - 它将是 PHP 的 date() 命令中的任何格式 - 否则 +1。
      猜你喜欢
      • 2018-04-20
      • 2016-02-28
      • 1970-01-01
      • 2021-11-30
      • 2023-02-07
      • 2018-03-13
      • 2023-01-05
      • 2019-12-18
      • 1970-01-01
      相关资源
      最近更新 更多