无法解析 DateTime::__construct()
cant parse DateTime::__construct()
我的 blade:
上有一个@foreach
@foreach
{{ $value-> StartDate}}
@endforeach
StartDate 当前显示为 'sept 2020 12:00:00AM'
我希望它被格式化为 'dd/mm/yy'/'d/m/y' 基本上像 23-09-2020 或 23/09/2020
我试过了
{{ $value->StartDate->format('d,m,y')}}
和
{{ Carbon\Carbon::parse($value->StartDate)->format('d,m,y') }}
并将 'd,m,y' 更改为 'dd,mm,yyyy' 等,但我可能会出错。我得到的主要错误是
Could not parse 'Sep 15 2020 12:00:00:AM': DateTime::__construct():
Failed to parse time string (Sep 15 2020 12:00:00:AM) at position 20
(:): Unexpected character
是否有更改格式的正确方法?
更新更详细:
我正在尝试更改一些日期在我的 blade 文件中的显示方式。它们来自 sql 数据库,因为 'Sep 16 2020 12:00:00:AM' 我希望它们显示为“16-09-2020” 下面是我所做的尝试,但是我仍然收到此错误
Unexpected data found. Unexpected data found. The separation symbol could not be found Trailing data
有没有人知道如何解决这个错误?
我的模特:
class HomeModel extends Entity
{
protected $dates = [
'StartDate',
];
public static function findBy(
\DateTime $StartDate,
\DateTime $EndDate
): array
{
$params = [
$StartDate,
$EndDate,
];
return self::hydrate(DB::select('EXEC Table @StartDate = ?, @EndDate = ?',
$params
));
}
}
我的控制器:
class Controller extends Controller
{
public function __invoke(Request $request)
{
if (!$request->input('StartDate') && !$request->input('EndDate')) {
$StartTime = Carbon::now()->subDays(8);
$EndTime = Carbon::now();
} else {
$StartTime = Carbon::parse($request->input('StartDate'));
$EndTime = Carbon::parse($request->input('EndDate'));
}
$data = HomeModel::findBy(
Carbon::parse($StartTime),
Carbon::parse($EndTime)
);
return view ('home', compact('data'));
}
我的 blade :
<tbody class="list">
@foreach($data as $value)
<tr>
<td class="end-time">
{{ \Carbon\Carbon::parse($value->StartDate)->format('d/m/Y')}}
</td>
</tr>
@endforeach
</tbody>
我尝试了 的解决方案,但它 returns 是
的错误
DateTime::__construct() expects parameter 2 to be string, array given
这是预期的,因为我正在尝试从数组中获取日期。我将数组转换为字符串的尝试也是徒劳的。 有谁知道任何 php 用于格式化数组中日期的函数?
你能试试PHPcreateFromFormat
函数吗?
<?php
$date='sept 2020 12:00:00AM'; //dd/mm/yy
$new= \DateTime::createFromFormat('M Y H:i:sA', $date )->format('d/m/Y');
echo $new;
或者您可以像下面这样解析日期。
\Carbon\Carbon::parse($date)->format('Y-m-d H:i');
勾选demo
我找到了一个非常简单的解决方案。我的代码没有问题,但我在哪里 运行 它。
{{ Carbon\Carbon::parse($value->StartDate)->format('d-m-Y') }}
在 blade 中效果很好,而且格式正确。我遇到的问题是我没有使用 laradock,这就是为什么我收到
错误的原因
Could not parse 'Sep 15 2020 12:00:00:AM': DateTime::__construct(): Failed to parse time string (Sep 15 2020 12:00:00:AM) at position 20 (:): Unexpected character
在终端中 运行 docker-compose up
之后,我不再收到错误并且日期格式正确。
我的结论是,如果您偶然发现此错误,请检查您的开发区域。
我的 blade:
上有一个@foreach@foreach
{{ $value-> StartDate}}
@endforeach
StartDate 当前显示为 'sept 2020 12:00:00AM' 我希望它被格式化为 'dd/mm/yy'/'d/m/y' 基本上像 23-09-2020 或 23/09/2020
我试过了
{{ $value->StartDate->format('d,m,y')}}
和
{{ Carbon\Carbon::parse($value->StartDate)->format('d,m,y') }}
并将 'd,m,y' 更改为 'dd,mm,yyyy' 等,但我可能会出错。我得到的主要错误是
Could not parse 'Sep 15 2020 12:00:00:AM': DateTime::__construct(): Failed to parse time string (Sep 15 2020 12:00:00:AM) at position 20 (:): Unexpected character
是否有更改格式的正确方法?
更新更详细:
我正在尝试更改一些日期在我的 blade 文件中的显示方式。它们来自 sql 数据库,因为 'Sep 16 2020 12:00:00:AM' 我希望它们显示为“16-09-2020” 下面是我所做的尝试,但是我仍然收到此错误
Unexpected data found. Unexpected data found. The separation symbol could not be found Trailing data
有没有人知道如何解决这个错误?
我的模特:
class HomeModel extends Entity
{
protected $dates = [
'StartDate',
];
public static function findBy(
\DateTime $StartDate,
\DateTime $EndDate
): array
{
$params = [
$StartDate,
$EndDate,
];
return self::hydrate(DB::select('EXEC Table @StartDate = ?, @EndDate = ?',
$params
));
}
}
我的控制器:
class Controller extends Controller
{
public function __invoke(Request $request)
{
if (!$request->input('StartDate') && !$request->input('EndDate')) {
$StartTime = Carbon::now()->subDays(8);
$EndTime = Carbon::now();
} else {
$StartTime = Carbon::parse($request->input('StartDate'));
$EndTime = Carbon::parse($request->input('EndDate'));
}
$data = HomeModel::findBy(
Carbon::parse($StartTime),
Carbon::parse($EndTime)
);
return view ('home', compact('data'));
}
我的 blade :
<tbody class="list">
@foreach($data as $value)
<tr>
<td class="end-time">
{{ \Carbon\Carbon::parse($value->StartDate)->format('d/m/Y')}}
</td>
</tr>
@endforeach
</tbody>
我尝试了
DateTime::__construct() expects parameter 2 to be string, array given
这是预期的,因为我正在尝试从数组中获取日期。我将数组转换为字符串的尝试也是徒劳的。 有谁知道任何 php 用于格式化数组中日期的函数?
你能试试PHPcreateFromFormat
函数吗?
<?php
$date='sept 2020 12:00:00AM'; //dd/mm/yy
$new= \DateTime::createFromFormat('M Y H:i:sA', $date )->format('d/m/Y');
echo $new;
或者您可以像下面这样解析日期。
\Carbon\Carbon::parse($date)->format('Y-m-d H:i');
勾选demo
我找到了一个非常简单的解决方案。我的代码没有问题,但我在哪里 运行 它。
{{ Carbon\Carbon::parse($value->StartDate)->format('d-m-Y') }}
在 blade 中效果很好,而且格式正确。我遇到的问题是我没有使用 laradock,这就是为什么我收到
错误的原因Could not parse 'Sep 15 2020 12:00:00:AM': DateTime::__construct(): Failed to parse time string (Sep 15 2020 12:00:00:AM) at position 20 (:): Unexpected character
在终端中 运行 docker-compose up
之后,我不再收到错误并且日期格式正确。
我的结论是,如果您偶然发现此错误,请检查您的开发区域。