date_format () ожидает, что параметр 1 будет DateTimeInterface, с нулевым значением (View: /home/vagrant/code/blog/resources/views/singlePost.blade.php) - PullRequest
0 голосов
/ 27 апреля 2018

Я не могу найти что не так с моим кодом. Я попытался просмотреть весь код, но не могу понять, как это сделать. Было бы очень полезно, если бы кто-то указал на мою ошибку. Он говорит, что с датой что-то не так, но я не вижу, что набрал неправильно.

@extends('layouts.master')
@section('content')

    <!-- Page Header -->
    <header class="masthead" style="background-image: url('{{asset('assets/img/post-bg.jpg')}}')">
      <div class="overlay"></div>
      <div class="container">
        <div class="row">
          <div class="col-lg-8 col-md-10 mx-auto">
            <div class="post-heading">
              <h1>{{$post->title}}</h1>
              <span class="meta">Posted by
                <a href="#">{{$post->user->name}}</a>
                on {{date_format($post->created_at,'F d,Y')}}</span>
            </div>
          </div>
        </div>
      </div>
    </header>

    <!-- Post Content -->
    <article>
      <div class="container">
        <div class="row">
          <div class="col-lg-8 col-md-10 mx-auto">
            {!!nl2br($post->content)!!}
          </div>
        </div>
<div class="comments">
  <hr>
  <h2>Comments</h2>
  <hr>
  @foreach($post->comments as $comment)
  <p>{{$comment->content}} <br>
  <p><small>by {{$comment->user->name}}, on {{date_format($comment->created_at,'F d,Y')}}</small></p>
  <hr>
  @endforeach

@if(Auth::check())
<form action="{{route('newComment')}}" method="POST">
  @csrf
  <div class="form-group">
<textarea class="form-control" placeholder="Comment..." name="comment" id="" cols="30" rows="4"></textarea>
<input type="hidden" name="post" value="{{$post->id}}">
</div>
<div class="form-group">
  <button class ="btn btn-primary" type="submit">Make Comment</button>
</div>
</form>
@endif

</div>
</article>
    @endsection


comments.blade.php code

1 Ответ

0 голосов
/ 27 апреля 2018

Ошибка показывает, что вы должны иметь DateTime объект

  $created_at = new DateTime("2018-02-01");
  echo date_format($created_at,'F d,Y');

Live Demo

Если у вас есть только дата, как 2018-02-01 Тогда вы можете использовать простую date() функцию

$created_at = "2018-02-01";
echo date('F d,Y',strtotime($created_at));

Демоверсия

Вы также можете сделать это по

echo (new DateTime("2018-02-01"))->format('F d,Y');

Демо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...