【问题标题】: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如何使用 laravel (5.8) Carbon 将 datetimepicker 日期(引导程序 4)格式 16/07/2019 10:00 转换为 mysql 格式 2019-07-16 10:00
【发布时间】:2019-07-18 06:48:21
【问题描述】:

您好朋友们,我的日期暂停有问题.. 在我看来,我有一个日期时间选择器 (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();

错误

【问题讨论】:

  • 一个错误?请展示一下。
  • 在“app.php”中,时区是这样设置的:'timezone' => 'America/Sao_Paulo'。

标签: php mysql laravel php-carbon


【解决方案1】:

试着用这个

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 朋友,你推荐我这个错误出现了......未知或错误的时区(16/07/2019 21:37:00)
    • 您在config/app.php 中设置了有效时区吗? php.net/manual/en/timezones.php
    • 尝试将时区作为第三个参数传递。 $date = Carbon::createFromFormat('d/m/Y H:i:s','16/07/2019 21:37:00','America/El_Salvador')->toDateTimeString();
    • 您是否尝试过运行php artisan config:clear 来清除配置缓存?
    • 仍然给出同样的错误:( ...我会尝试使用 strtotime 看看我是否成功(问题在于更新日期)
    【解决方案4】:

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

    我开始修复我的 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');
    

    【讨论】:

      猜你喜欢
      • 2019-09-17
      • 1970-01-01
      • 1970-01-01
      • 2020-03-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-04
      相关资源
      最近更新 更多