微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法解析DateTime :: __ construct

如何解决无法解析DateTime :: __ construct

我的刀片上有一个@foreach:

@foreach
{{ $value-> StartDate}}
@endforeach

StartDate当前显示为“ 2020年9月12:00:00 AM” 我希望将其格式设置为“ 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,y') }}

,也将“ d,m,y”更改为“ dd,mm,yyyy”等,但我可能会出错。我得到的主要错误

无法解析'Sep 15 2020 12:00:00:AM':DateTime :: __ construct(): 无法解析位置20的时间字符串(Sep 15 2020 12:00:00:AM) (:):意外字符

是否有适当的方式来更改格式?

更详细的更新:

我正在尝试更改某些日期在我的刀片文件中的显示方式。它们来自sql数据库显示为“ Sep 16 2020 12:00:00:AM”,我希望它们显示为“ 16-09-2020”。下面是我所做的尝试,但是仍然出现此错误>

发现意外数据。找到意外的数据。找不到分隔符号尾随数据

有人对如何解决错误有任何想法吗?

我的模特:

    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'));
    }

我的刀片:

    <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>

我尝试了给定here解决方案,但返回了错误

DateTime :: __ construct()期望参数2为字符串,给定数组

这是预期的,因为我正试图从数组中获取日期。我把数组变成字符串的尝试也是徒劳的。 有人知道用于格式化数组中日期的任何PHP函数吗?

解决方法

您可以尝试使用PHP createFromFormat函数吗?

<?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') }}

在刀片中效果很好,并将正确格式化。我遇到的问题是我没有在laradock上工作,这就是为什么我得到错误消息

无法解析'Sep 15 2020 12:00:00:AM':DateTime :: __ construct():无法解析位置20(:)上的时间字符串(Sep 15 2020 12:00:00:AM):意外字符

在终端中运行docker-compose up后,我停止出现错误,并且日期格式正确。 我的收获是,如果您偶然遇到此错误,请检查您的开发区域。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?