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

时间:2019-05-02 10:43:00

标签: laravel php-carbon

我有一个小的laravel项目致力于日期转换。我有从格式为dd / mm / yyyy的日期字符串。代码和结果如下所示。

func imageTobase64(image: UIImage) -> String {
        var base64String = ""
        let  cim = CIImage(image: image)
        if (cim != nil) {
            let imageData = image.jpegData(compressionQuality: 1.0)
            base64String = imageData!.base64EncodedString(options: NSData.Base64EncodingOptions.lineLength64Characters)
        }
        return base64String
    }

然后我尝试使用碳转化为yyyy-mm-dd。

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

我得到的解析结果如下。

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

那是错误的,应该改为2019/05/02。任何建议或指导将不胜感激,谢谢。

3 个答案:

答案 0 :(得分:6)

您可以尝试以下方法:

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

答案 1 :(得分:1)

这可能也很干净

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',
    ];

答案 2 :(得分:0)

您可以尝试以下方法:

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