如何使用laravel(5.8)Carbon将datetimepicker日期(引导程序4)格式16/07/2019 10:00转换为mysql格式2019-07-16 10:00

时间:2019-07-17 02:54:25

标签: php mysql laravel php-carbon

你好朋友,我在日期暂停方面遇到问题..在我看来,我有一个(bootstrap 4)的datetimepicker,格式为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();

错误 the error

4 个答案:

答案 0 :(得分:0)

只需尝试使用此

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

答案 1 :(得分:0)

您需要将传入格式与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

答案 2 :(得分:0)

列出时区: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'

谢谢

答案 3 :(得分:0)

我不得不进行大量研究并且反复试验,但我设法解决了我的问题……非常感谢所有帮助我提供解决方案想法的人员。感谢您的帮助,它对解决我的问题大有帮助。

我开始修复datetimepicker,所以

$('#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');