如何将 datetimepicker 日期 (bootstrap 4) 格式 16/07/2019 10:00 转换为 mysql 格式 2019-07-16 10:00 和 laravel (5.8)碳

how to convert datetimepicker date (bootstrap 4) format 16/07/2019 10:00 to mysql format 2019-07-16 10:00 with laravel (5.8) Carbon

你好朋友,我对日期暂停有疑问。在我看来,我有一个日期时间选择器 (bootstrap 4),格式为 12/06/2019 12:00:00 以及我需要的就是把它传递给接受mysql 2019-06-12 12:00:00

的格式

尝试从 js 执行,但没有成功

$(function () {
        $('#startdate').datetimepicker({
        useCurrent: false,
        format: 'Y-MM-D H:mm',
        autoclose:true,
        minDate: moment()
});

这就是我在我的控制器上尝试的方式,但它给了我一个错误:(

$promociones->fecha_inicio = Carbon::createFromFormat('Y-m-d H:i',$request->fecha_inicio)->toDateTimeString();
    $promociones->fecha_fin = Carbon::createFromFormat('Y-m-d H:i',$request->fecha_fin)->toDateTimeString();

错误

试试用这个

\Carbon\Carbon::parse($request->fecha_inicio);Carbon::parse($request->fecha_inicio);

您需要将传入格式与 Carbon::createFromFormat() 匹配,而不是传出格式。

Carbon::createFromFormat('d/m/Y H:i','16/07/2019 10:00')->toDateTimeString();

我假设第一个数字是基于标题的天数,因为没有第 16 个月。从12/06/2019 12:00:00.

看是不可能的

编辑(时区问题)

既然你说时区设置在config/app.php,也可以将时区作为第三个参数传递:

$date = Carbon::createFromFormat('d/m/Y H:i','16/07/2019 21:37','America/El_Salvador')->toDateTimeString();

此外,如果您最近更改了配置,您可能需要 运行:

php artisan config:clear

列出时区:https://www.php.net/manual/en/timezones.php

$promociones->fecha_inicio = Carbon::createFromFormat('Y-m-d H:i',$request->fecha_inicio)->toDateTimeString();
$promociones->fecha_fin = Carbon::createFromFormat('Y-m-d H:i',$request->fecha_fin)->toDateTimeString();

在 "config/app.php" 中,时区是这样设置的:'timezone' => '...'

例如:

'timezone' => 'America/Guatemala'

谢谢

我不得不进行大量调查并反复试验,但我设法解决了我的问题...非常感谢所有帮助我为我的解决方案提供想法的人。感谢您的帮助,帮我解决了很多问题。

我开始修复我的日期时间选择器,所以

$('#startdate').datetimepicker({
        useCurrent: false,
        minDate: moment()
    });
    $('#enddate').datetimepicker({
        useCurrent: false,
        minDate: moment()
    });

我不得不删除我给他的格式....然后传递给控制器 正如一些人向我建议的那样......传递接收我输入的格式 d / m / YH: m 之后我通过了我所在国家/地区的时区(以防出现日期问题)然后我只需要在我的情况下,将我想将其保存到数据库的格式传递给 mysql 默认情况下接受格式 Ymd H: i ... 并准备好解决问题

$promociones->fecha_inicio = Carbon::createFromFormat('d/m/Y H:i',$request->fecha_inicio,'America/El_Salvador')->format('Y-m-d H:i');
    $promociones->fecha_fin = Carbon::createFromFormat('d/m/Y H:i',$request->fecha_fin,'America/El_Salvador')->format('Y-m-d H:i');