Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
laravel api中文件中的双时间规范_Laravel_Php Carbon - Fatal编程技术网

laravel api中文件中的双时间规范

laravel api中文件中的双时间规范,laravel,php-carbon,Laravel,Php Carbon,我在laravel制作api,从$request->followup获取2021-01-30T10:30:17.704 05:30,我在数据库中有一列名为followup的数据类型为datetime。但它给了我以下的错误 Carbon\Exceptions\InvalidFormatException: Could not parse '2021-01-30T10:30:17.704 05:30': DateTime::__construct(): Failed to parse time st

我在laravel制作api,从
$request->followup
获取
2021-01-30T10:30:17.704 05:30
,我在数据库中有一列名为followup的数据类型为datetime。但它给了我以下的错误

Carbon\Exceptions\InvalidFormatException: Could not parse '2021-01-30T10:30:17.704 05:30': DateTime::__construct(): Failed to parse time string (2021-01-30T10:30:17.704 05:30) at position 24 (0): Double time specification in file D:\xampp2\htdocs\synocrm-baid\rest-apis\vendor\nesbot\carbon\src\Carbon\Traits\Creator.php on line 188
我试着像这样改变格式

$followupDate = date('Y-m-d h:i:s A',strtotime($request->followup));
我的情态

@property Carbon|null $followup

2021-01-30T10:30:17.704 05:30


它似乎不是有效的时间戳。对于解析,它应该是有效的时间戳或日期。

$request->followup
在datetime后面加上datetime

原值:2021-01-30T10:30:17.704 05:30

日期时间:2021-01-30T10:30:17.704

时间:05:30

我们可以看到,有两个时间(05:30和10:30:17),因此
strotime()
无法转换该值

为了解决这个问题,

  • 仅将值作为时间发送(2021-01-30T10:30:17.704),而不是两次时间属性

  • 如果无法控制请求值,则只能检索日期值,如:

    $dateValue = explode(' ', $request->followup)[0];
    
    $followupDate = date('Y-m-d h:i:s A',strtotime($dateValue));
    
    Or Using Carbon
    
    $followupDate = Carbon::parse($dateValue);
    

  • 我不推荐选项2,因为它会给其他开发人员带来问题和混乱。

    我尝试了第二个选项,但仍然面临相同的问题您是否可以粘贴$dateValue$dateValue的值返回2021-01-30T10:30:17.704相同的值对我有效。请再试一次。为了方便起见,我还添加了碳选项。为我工作时,我将值分配到$request->followup而不是followupdate中,这样就可以了。如果5:30是一个时区,听起来+已经被URL解码了:你应该有2021-01-30T10:30:17.704+05:30,并且应该对该值进行编码,这样你就不会丢失URL+