格式化Laravel Blade中的动态日期

I am working on HTML emails in which there is a date section where I want to place a placeholder as it's a dynamic data.

The HTML code where I am using dates are:

<tr>
   <td style="padding-bottom: 3%;text-align:right;">when:</td>
   <td style="padding-bottom: 3%;padding-left: 8%;">Mar 28/18 @ 7:00pm to <br> Mar 30/18 @ 7:00pm</td>
</tr>

Problem

I am wondering in place of Mar 28/18 @ 7:00pm to <br> Mar 30/18 @ 7:00pm, what placeholder do I need to format the date variables properly?

Depending on what type your dynamic date data have, you need to take different actions.

Formatting Carbon instances

{{ $start->format('M d/y @ h:ma') }} to <br> {{ $end->format('M d/y @ h:ma') }}

Formatting vanilla timestamps

{{ date('M d/y @ h:ma', $start) }} to <br> {{ date('M d/y @ h:ma', $end) }}

Formatting valid date strings

{{ date('M d/y @ h:ma', strtotime($start)) }} to <br> {{ date('M d/y @ h:ma', strtotime($end)) }}

Formatting dates using custom Blade directives

Extend Blade for a new @datetime directive. Add a BladeServiceProvider and register the directive in its boot method.

You can also be lazy and add it to already existing AppServiceProvider.

<?php

namespace App\Providers;

use Illuminate\Support\Facades\Blade;
use Illuminate\Support\ServiceProvider;

class BladeServiceProvider extends ServiceProvider
{
    public function boot()
    {
        Blade::directive('datetime', function ($expression) {
            return "<?php echo ($expression)->format('M d/y @ h:ma'); ?>";
        });
    }
}

With that in place and considering Carbon instances, your view code would be:

@datetime($start) to @datetime($end)

Needless to say that you can easily adapt the code for other date types.