【问题标题】:Laravel 5.8 - unexpected data found. unexpected data foundLaravel 5.8 - 发现意外数据。发现意外数据
【发布时间】:2020-06-30 20:37:41
【问题描述】:

我正在开发一个 Laravel 应用程序(5.8 版),我在 Internet Explorer 11 中使用 createFromFormat Carbon 的方法存在一些问题(是的,我知道......但这是我公司的默认浏览器)。

这是我得到错误的代码段和错误的堆栈跟踪:

$datas['DT_DELIB'] = Carbon::createFromFormat('d/m/Y',$delibProjRequest->DT_DELIB)->toDateTimeString();
InvalidArgumentException 
Unexpected data found. Unexpected data found. Unexpected data found.
InvalidArgumentException thrown with message "Unexpected data found.
Unexpected data found.
Unexpected data found."

Stacktrace:
#56 InvalidArgumentException in C:\laragon\www\projetMecenat\vendor\nesbot\carbon\src\Carbon\Traits\Creator.php:623
#55 Carbon\Carbon:rawCreateFromFormat in C:\laragon\www\projetMecenat\vendor\nesbot\carbon\src\Carbon\Traits\Creator.php:645
#54 Carbon\Carbon:createFromFormat in C:\laragon\www\projetMecenat\app\Http\Controllers\DeliberationProjetController.php:50
#53 App\Http\Controllers\DeliberationProjetController:store in C:\laragon\www\projetMecenat\vendor\laravel\framework\src\Illuminate\Routing\Controller.php:54
#52 call_user_func_array in C:\laragon\www\projetMecenat\vendor\laravel\framework\src\Illuminate\Routing\Controller.php:54
#51 Illuminate\Routing\Controller:callAction in C:\laragon\www\projetMecenat\vendor\laravel\framework\src\Illuminate\Routing\ControllerDispatcher.php:45
#50 Illuminate\Routing\ControllerDispatcher:dispatch in C:\laragon\www\projetMecenat\vendor\laravel\framework\src\Illuminate\Routing\Route.php:219
#49 Illuminate\Routing\Route:runController in C:\laragon\www\projetMecenat\vendor\laravel\framework\src\Illuminate\Routing\Route.php:176
#48 Illuminate\Routing\Route:run in C:\laragon\www\projetMecenat\vendor\laravel\framework\src\Illuminate\Routing\Router.php:680
#47 Illuminate\Routing\Router:Illuminate\Routing\{closure} in C:\laragon\www\projetMecenat\vendor\laravel\framework\src\Illuminate\Routing\Pipeline.php:30
#46 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in C:\laragon\www\projetMecenat\vendor\laravel\framework\src\Illuminate\Routing\Middleware\SubstituteBindings.php:41
#45 Illuminate\Routing\Middleware\SubstituteBindings:handle in C:\laragon\www\projetMecenat\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php:163
#44 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in C:\laragon\www\projetMecenat\vendor\laravel\framework\src\Illuminate\Routing\Pipeline.php:53
#43 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in C:\laragon\www\projetMecenat\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\VerifyCsrfToken.php:75
#42 Illuminate\Foundation\Http\Middleware\VerifyCsrfToken:handle in C:\laragon\www\projetMecenat\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php:163
#41 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in C:\laragon\www\projetMecenat\vendor\laravel\framework\src\Illuminate\Routing\Pipeline.php:53
#40 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in C:\laragon\www\projetMecenat\vendor\laravel\framework\src\Illuminate\View\Middleware\ShareErrorsFromSession.php:49
#39 Illuminate\View\Middleware\ShareErrorsFromSession:handle in C:\laragon\www\projetMecenat\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php:163
#38 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in C:\laragon\www\projetMecenat\vendor\laravel\framework\src\Illuminate\Routing\Pipeline.php:53
#37 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in C:\laragon\www\projetMecenat\vendor\laravel\framework\src\Illuminate\Session\Middleware\StartSession.php:56
#36 Illuminate\Session\Middleware\StartSession:handle in C:\laragon\www\projetMecenat\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php:163
#35 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in C:\laragon\www\projetMecenat\vendor\laravel\framework\src\Illuminate\Routing\Pipeline.php:53
#34 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in C:\laragon\www\projetMecenat\vendor\laravel\framework\src\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse.php:37
#33 Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse:handle in C:\laragon\www\projetMecenat\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php:163
#32 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in C:\laragon\www\projetMecenat\vendor\laravel\framework\src\Illuminate\Routing\Pipeline.php:53
#31 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in C:\laragon\www\projetMecenat\vendor\laravel\framework\src\Illuminate\Cookie\Middleware\EncryptCookies.php:66
#30 Illuminate\Cookie\Middleware\EncryptCookies:handle in C:\laragon\www\projetMecenat\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php:163
#29 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in C:\laragon\www\projetMecenat\vendor\laravel\framework\src\Illuminate\Routing\Pipeline.php:53
#28 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in C:\laragon\www\projetMecenat\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php:104
#27 Illuminate\Pipeline\Pipeline:then in C:\laragon\www\projetMecenat\vendor\laravel\framework\src\Illuminate\Routing\Router.php:682
#26 Illuminate\Routing\Router:runRouteWithinStack in C:\laragon\www\projetMecenat\vendor\laravel\framework\src\Illuminate\Routing\Router.php:657
#25 Illuminate\Routing\Router:runRoute in C:\laragon\www\projetMecenat\vendor\laravel\framework\src\Illuminate\Routing\Router.php:623
#24 Illuminate\Routing\Router:dispatchToRoute in C:\laragon\www\projetMecenat\vendor\laravel\framework\src\Illuminate\Routing\Router.php:612
#23 Illuminate\Routing\Router:dispatch in C:\laragon\www\projetMecenat\vendor\laravel\framework\src\Illuminate\Foundation\Http\Kernel.php:176
#22 Illuminate\Foundation\Http\Kernel:Illuminate\Foundation\Http\{closure} in C:\laragon\www\projetMecenat\vendor\laravel\framework\src\Illuminate\Routing\Pipeline.php:30
#21 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in C:\laragon\www\projetMecenat\vendor\barryvdh\laravel-debugbar\src\Middleware\InjectDebugbar.php:65
#20 Barryvdh\Debugbar\Middleware\InjectDebugbar:handle in C:\laragon\www\projetMecenat\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php:163
#19 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in C:\laragon\www\projetMecenat\vendor\laravel\framework\src\Illuminate\Routing\Pipeline.php:53
#18 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in C:\laragon\www\projetMecenat\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\TransformsRequest.php:21
#17 Illuminate\Foundation\Http\Middleware\TransformsRequest:handle in C:\laragon\www\projetMecenat\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php:163
#16 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in C:\laragon\www\projetMecenat\vendor\laravel\framework\src\Illuminate\Routing\Pipeline.php:53
#15 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in C:\laragon\www\projetMecenat\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\TransformsRequest.php:21
#14 Illuminate\Foundation\Http\Middleware\TransformsRequest:handle in C:\laragon\www\projetMecenat\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php:163
#13 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in C:\laragon\www\projetMecenat\vendor\laravel\framework\src\Illuminate\Routing\Pipeline.php:53
#12 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in C:\laragon\www\projetMecenat\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\ValidatePostSize.php:27
#11 Illuminate\Foundation\Http\Middleware\ValidatePostSize:handle in C:\laragon\www\projetMecenat\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php:163
#10 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in C:\laragon\www\projetMecenat\vendor\laravel\framework\src\Illuminate\Routing\Pipeline.php:53
#9 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in C:\laragon\www\projetMecenat\vendor\laravel\framework\src\Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode.php:62
#8 Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode:handle in C:\laragon\www\projetMecenat\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php:163
#7 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in C:\laragon\www\projetMecenat\vendor\laravel\framework\src\Illuminate\Routing\Pipeline.php:53
#6 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in C:\laragon\www\projetMecenat\vendor\fideloper\proxy\src\TrustProxies.php:57
#5 Fideloper\Proxy\TrustProxies:handle in C:\laragon\www\projetMecenat\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php:163
#4 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in C:\laragon\www\projetMecenat\vendor\laravel\framework\src\Illuminate\Routing\Pipeline.php:53
#3 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in C:\laragon\www\projetMecenat\vendor\laravel\framework\src\Illuminate\Pipeline\Pipeline.php:104
#2 Illuminate\Pipeline\Pipeline:then in C:\laragon\www\projetMecenat\vendor\laravel\framework\src\Illuminate\Foundation\Http\Kernel.php:151
#1 Illuminate\Foundation\Http\Kernel:sendRequestThroughRouter in C:\laragon\www\projetMecenat\vendor\laravel\framework\src\Illuminate\Foundation\Http\Kernel.php:116
#0 Illuminate\Foundation\Http\Kernel:handle in C:\laragon\www\projetMecenat\public\index.php:55

当我转储传入参数的数据时(在 IE 和其他浏览器中):

dd($delibProjRequest->DT_DELIB);
// "‎21‎/‎07‎/‎2020"

奇怪的是,当我尝试使用具有相同格式的日期时,它似乎可以工作:

$test = Carbon::createFromFormat("d/m/Y",'20/07/2019');
dd($test);
/**
Carbon\Carbon @1563608837 {#405 ▼
  #constructedObjectId: "000000006b8ef720000000002bcf1ddf"
  #localMonthsOverflow: null
  #localYearsOverflow: null
  #localStrictModeEnabled: null
  #localHumanDiffOptions: null
  #localToStringFormat: null
  #localSerializer: null
  #localMacros: null
  #localGenericMacros: null
  #localFormatFunction: null
  #localTranslator: null
  #dumpProperties: array:3 [▶]
  #dumpLocale: null
  date: 2019-07-20 07:47:17.0 UTC (+00:00)
  timezone_type: 3
  timezone: "UTC"
*/

我认为这是 IE 11 的特殊之处,因为它在其他浏览器中运行良好。 如果有人有想法或线索来帮助它会很棒,我现在有点卡住了......

提前致谢。

【问题讨论】:

  • 我不明白你为什么说IE 11。它是后端,浏览器无关紧要。当您使用 IE 11 时,$delibProjRequest->DT_DELIB 很可能是不一样的,因为它来自浏览器。请在此处分享完整的堆栈跟踪,并在此处输入使用 IE 11 时 $delibProjRequest->DT_DELIB 的值。请记住,您不能在 IE 11 上使用 <input type="date">caniuse.com/#search=input-date
  • 更改Carbon::createFromFormat('d/m/Y',$delibProjRequest->DT_DELIB)->endOfDay()
  • 添加这个$casts = ['DT_DELIB'];
  • 感谢您的大力帮助!我解决了这样的解决方案转换:'DT_DELIB' => 'datetime:d/m/Y'。问题已关闭:)
  • @STA 您可能想发布答案以获得积分;)

标签: php laravel php-carbon


【解决方案1】:

对于那些有兴趣的人,我已经通过像这样投射日期来解决问题:

'DT_DELIB' => 'datetime:d/m/Y'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-20
    • 2014-10-18
    • 2020-08-29
    • 2014-08-01
    • 1970-01-01
    相关资源
    最近更新 更多