Date_format () ожидает, что параметр 1 будет DateTimeInterface, задано значение null (View: /home/vagrant/code/blog/resources/views/singlePost.blade.php)

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

@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

пожалуйста, добавьте сюда код, а не изображение? На самом деле камера с большим увеличением не может правильно видеть это общее изображение.

Niklesh Raut 27.04.2018 11:19

я добавил код выше извините

mariona zahra 27.04.2018 11:25

поделитесь какими-нибудь примерами данных $post->created_at?

Niklesh Raut 27.04.2018 11:30
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
4
11 119
2

Ответы 2

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

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

Живая демонстрация

Если у вас есть свидание, например 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');

Демо

но даты не вводятся вручную, они подключены к БД

mariona zahra 27.04.2018 11:43

использовать (new DateTime($comment->created_at))->format('F d,Y');

Niklesh Raut 27.04.2018 11:46

или date('F d,Y',strtotime($comment->created_at));

Niklesh Raut 27.04.2018 11:46

@ C2486 https://stackoverflow.com/questions/50040436/laravel-how-can‌​-i-validate-reset-pa‌​ssword-table-token-a‌​nd-request-token помогите мне в этом !!

Javed 27.04.2018 11:52

Цените это старое, но эта тема возникла, когда я искал решение, и мой должен был сделать это при чтении из моей базы данных:

$evdate = DateTime::createFromFormat('Y-m-d H:i:s', $row['when']);

И затем это, чтобы отобразить дату на странице без ошибок:

<?php echo($evdate->format("H:i d/m/y")) ?>

Надеюсь, это поможет тем, кто с этим столкнется, я использовал date_format, который, хотя работал и правильно отображался на экране, выдавал ошибку, которую я хотел выкинуть из моих журналов. (и, по-видимому, если все будет сделано правильно, это будет лучше, чем работа, которая кажется работающей).

Другие вопросы по теме