【发布时间】: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