如何使用 Laravel 上的碳将日期格式从 dd/mm/yyyy 转换为 yyyy-mm-dd

How to convert date format from dd/mm/yyyy to yyyy-mm-dd using carbon on Laravel

我有一个小的 laravel 项目在处理日期转换。我有从格式 dd/mm/yyyy 请求中获取的日期字符串。代码和结果如下。

$request->stockupdate ; 
// dd/mm/yyyy (02/05/2019)

然后我尝试使用 carbon 转换为 yyyy-mm-dd。

$_stockupdate= Carbon::parse($request->stockupdate)->format('Y-m-d'); 

我得到如下解析结果。

2019/02/05  // Seem it is 2 Feb 2019 not 5 May 2019.

错了,应该是2019/05/02。任何建议或指导将不胜感激,谢谢。

你可以试试这个:

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

你可以试试这个:

 $date = str_replace('/', '-', $request->stockupdate);
 $newDate = date("Y-m-d", strtotime($date));
 OR
 Carbon::createFromFormat('d/m/Y', $request->stockupdate)->format('Y-m-d')

这可能也很干净

Carbon Live Editor


// DD    Day (2 Numbers)
// MM    Month (2 Numbers)
// YYYY  Year (4 Numbers)

// Will format to 2021-03-18
Carbon\Carbon::now()->isoFormat('YYYY-MM-DD');


与模型一起使用

如果您使用像 $data->expired_at 这样的模型,您需要将类型设置为日期

将此添加到您的模型文件中:

/**
     * The attributes that should be date.
     *
     * @var array
     */
protected $dates = [
        'expired_at',
    ];