Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

noblemfd's avatar

Trailing data error in Laravel Date Format

I am currently working on Laravel-5.8 application.

I am trying to force the date format to dd/mm/yyyy

config/app

   /*
      Date Format 
   */
    // ...
    'date_format' => 'd/m/Y',
    'date_format_js' => 'DD/MM/YYYY',

model

      protected $fillable = [
          'name',
          'start_date',
          'end_date',
      ];

    protected $dates = [
        'start_date',
        'end_date'
    ];


    public function setStartDateAttribute($input)
    {
        $this->attributes['start_date'] = 
          Carbon::createFromFormat(config('app.date_format'), $input)->format('Y-m-d');
    }

    public function getStartDateAttribute($input)
    {
        return Carbon::createFromFormat('Y-m-d', $input)
      ->format(config('app.date_format'));
    }    

    public function setEndDateAttribute($input)
    {
        $this->attributes['end_date'] = 
          Carbon::createFromFormat(config('app.date_format'), $input)->format('Y-m-d');
    }    

    public function getEndDateAttribute($input)
    {
        return Carbon::createFromFormat('Y-m-d', $input)
      ->format(config('app.date_format'));
    }

view:

                <td>
                    <input type="date" name="start_date[]" placeholder="dd/mm/yyyy" class="form-control start_date" min="{{Carbon\Carbon::now()->firstOfYear()->format('Y-m-d')}}" max="{{Carbon\Carbon::now()->lastOfYear()->format('Y-m-d')}}">
                </td>

                <td>
                    <input type="date" name="end_date[]" placeholder="dd/mm/yyyy" class="form-control end_date" min="{{Carbon\Carbon::now()->firstOfYear()->format('Y-m-d')}}" max="{{Carbon\Carbon::now()->lastOfYear()->format('Y-m-d')}}">
                </td>

<script type="text/javascript">
    $(document).ready(function() {
        $(function () {
            $('#start_date').datetimepicker({
                format: '{{ config('app.date_format_js') }}',
            });
            $('#end_date').datetimepicker({
                format: '{{ config('app.date_format_js') }}'               
            });
        });
    });
</script>

When I submitted, I got this error:

InvalidArgumentException {#2629 ▼
  #message: "Trailing data"
  #code: 0
  #file: "C:\xampp\htdocs\myproject\vendor\nesbot\carbon\src\Carbon\Traits\Creator.php"
  #line: 623
  trace: {▼
    C:\xampp\htdocs\myproject\vendor\nesbot\carbon\src\Carbon\Traits\Creator.php:623 {▼
      Carbon\Carbon::rawCreateFromFormat($format, $time, $tz = null) …
      › if (static::isStrictModeEnabled()) {
      ›     throw new InvalidArgumentException(implode(PHP_EOL, $lastErrors['errors']));
      › }
    }
    C:\xampp\htdocs\myproject\vendor\nesbot\carbon\src\Carbon\Traits\Creator.php:645 {▼
      Carbon\Carbon::createFromFormat($format, $time, $tz = null) …
      › if (!$function) {
      ›     return static::rawCreateFromFormat($format, $time, $tz);
      › }
      arguments: {▶}
    }
    C:\xampp\htdocs\myproject\app\Models\Leave.php:80 {▼
      App\Models\Leave->setStartDateAttribute($input) …
      ›     $this->attributes['start_date'] = 
      ›       Carbon::createFromFormat(config('app.date_format'), $input)->format('Y-m-d');
      › }
      arguments: {▼
        $format: null
        $time: "2020-06-08"
      }
    }

and

C:\xampp\htdocs\myproject\app\Models\Leave.php:80

is

public function setStartDateAttribute($input)
{
    $this->attributes['start_date'] = 
      Carbon::createFromFormat(config('app.date_format'), $input)->format('Y-m-d');
}

How do I resolve this?

Thanks

0 likes
4 replies
MichalOravec's avatar

From config('app.date_format') you get null

php artisan config:clear;
noblemfd's avatar

@michaloravec - The error changed to:

#message: """
  The separation symbol could not be found
  Unexpected data found.
  Trailing data
  """
#code: 0
#file: "C:\xampp\htdocs\myproject\vendor\nesbot\carbon\src\Carbon\Traits\Creator.php"
#line: 623
trace: {▼
  C:\xampp\htdocs\myproject\vendor\nesbot\carbon\src\Carbon\Traits\Creator.php:623 {▶}
  C:\xampp\htdocs\myproject\vendor\nesbot\carbon\src\Carbon\Traits\Creator.php:645 {▶}
  C:\xampp\htdocs\myproject\app\Models\Leave.php:79 {▼
    App\Models\Leave->setStartDateAttribute($input) …
    › {
    ›     $this->attributes['start_date'] = Carbon::createFromFormat(config('app.date_format'), $input)->format('Y-m-d');
    › }
    arguments: {▼
      $format: "d/m/Y"
      $time: "2020-06-02 00:00:00"
    }
  }
MichalOravec's avatar

Propably change it to this

public function setStartDateAttribute($input)
{
    $this->attributes['start_date'] = Carbon::parse($input)->toDateString();
}
MichalOravec's avatar

@noblemfd This works for you?

public function setStartDateAttribute($input)
{
    $this->attributes['start_date'] = Carbon::createFromFormat('d/m/Y', $input)->toDateString();
}

Please or to participate in this conversation.