在幼虫检视页面更改日期格式

我想改变从数据库中提取的日期格式。 现在我得到了2016-10-01{{$user->from_date}}。我想在 Laravel 5.3中改变格式‘ m-y’

{{ $user->from_date->format('d/m/Y')}}
539621 次浏览

试试这个:

date('d-m-Y', strtotime($user->from_date));

它将日期转换为 d-m-Y或任何格式你已经给出。

注意: 这个解决方案是一个通用的解决方案,适用于 php 及其任何框架。对于特定于 Laravel 的方法,请尝试 Hamelraj提供的解决方案。

在 Laravel 使用 是好的

\{\{ \Carbon\Carbon::parse($user->from_date)->format('d/m/Y')}}

你可以检查 Date Mutators: https://laravel.com/docs/5.3/eloquent-mutators#date-mutators

您需要在您的 User模型列 from_date$dates阵列,然后您可以改变格式在 $dateFormat

另一个选择是把这个方法放到你的 User模型中:

public function getFromDateAttribute($value) {
return \Carbon\Carbon::parse($value)->format('d-m-Y');
}

然后在视图中,如果你运行 \{\{ $user->from_date }},你将看到你想要的格式。

方法一:

使用 strtotime() to time 是将日期更改为给定格式的最佳格式。

strtotime()-将任何英文文本日期时间描述解析为 Unix 时间戳

该函数期望获得一个包含英文日期格式的字符串,并将尝试将该格式解析为一个 Unix 时间戳(自1970年1月1日00:00:00 UTC 以来的秒数) ,相对于现在给出的时间戳,或者当前时间(如果现在没有提供)。

例如:

<?php
$timestamp = strtotime( "February 26, 2007" );
print date('Y-m-d', $timestamp );
?>

产出:

2007-02-26

方法二:

返回一个新的 DateTime 对象,然后格式化日期:

<?php
$date=date_create("2013-03-15");
echo date_format($date,"Y/m/d H:i:s");
?>

产出:

 2013/03/15 00:00:00

在你的模型集中:

protected $dates = ['name_field'];

在你看来:

\{\{ $user->from_date->format('d/m/Y') }}

工程

我有一个类似的问题,我想改变格式,但我也希望能够改变在刀片模板引擎的格式太灵活。

因此,我将我的模型设置为:

<?php


namespace App;


use Illuminate\Database\Eloquent\Model;


\Carbon\Carbon::setToStringFormat('d-m-Y');


class User extends Model
{
protected $dates = [
'from_date',
];
}

setToStringFormat将为此模型设置使用此格式的所有日期。
对我来说,这样做的好处是,我可以不使用 mutator 就得到我想要的格式,因为在 mutator 中,属性以字符串的形式返回,这意味着在刀片模板中,如果我想要更改模板中的格式,我必须编写类似下面这样的内容:

\{\{ date('Y', strtotime($user->from_date)) }}

不是很干净。

相反,该属性仍然作为 Carbon 实例返回,但是它首先以所需的格式返回。
这意味着我可以在模板中编写以下更清晰的代码:

\{\{ $user->from_date->format('Y') }}

除了能够重新格式化 Carbon 实例之外,我还可以对模板中的属性调用各种 Carbon 方法。

这种方法可能存在疏忽; 我打赌在模型顶部指定字符串格式不是一个好主意,以防它影响其他脚本。就我目前所见,这种情况并没有发生。它只是改变了默认的碳模式。

在这个例子中,将 Carbon 格式设置为模型脚本底部的原始格式可能是一个很好的选择。这是一个糟糕的想法,但是对于每个模型都有自己的格式是可行的。
相反,如果对于每个模型使用相同的格式,则改为在 AppServiceProvider 中使用。这将使代码更简洁,更容易维护。

你可以使用 Carbon::createFromTimestamp

刀片

\{\{ \Carbon\Carbon::createFromTimestamp(strtotime($user->from_date))->format('d-m-Y')}}

有时候更改日期格式并不能正常工作,特别是在 Laravel,所以在这种情况下,最好使用:

$date1 = strtr($_REQUEST['date'], '/', '-');
echo date('Y-m-d', strtotime($date1));

这样你就可以避免像“1970-01-01”这样的错误!

在 Laravel 中,你可以在 app/Helper/helper.php 中添加一个函数,比如

function formatDate($date = '', $format = 'Y-m-d'){
if($date == '' || $date == null)
return;


return date($format,strtotime($date));
}

并在任何控制器上调用这个函数,如下所示

$start_date = formatDate($start_date,'Y-m-d');

希望能有帮助!

有三种方法可以做到:

1)使用 Laravel 模型

$user = \App\User::find(1);


$newDateFormat = $user->created_at->format('d/m/Y');


dd($newDateFormat);

2)使用 PHP strtotime

$user = \App\User::find(1);


$newDateFormat2 = date('d/m/Y', strtotime($user->created_at));


dd($newDateFormat2);

3)使用碳

$user = \App\User::find(1);


$newDateFormat3 = \Carbon\Carbon::parse($user->created_at)->format('d/m/Y');


dd($newDateFormat3);

我建议使用 isoFormat更好的外观在网页上。

\{\{ \Carbon\Carbon::parse($blog->created_at)->isoFormat('MMM Do YYYY')}}

结果就是

2021年1月21日

碳延伸

在 Laravel8中,你可以使用日期选择: https://laravel.com/docs/8.x/eloquent-mutators#date-casting

在你的模型中:

protected $casts = [
'my_custom_datetime_field' => 'datetime'
];

然后在你的刀片模板中你可以使用 format()方法:

\{\{ $my_custom_datetime_field->format('d. m. Y') }}

在美国以外的任何地方使用更自然的日期格式,时间包括小时、分钟和秒:

2022年07月03日19:00:00

\{\{ \Carbon\Carbon::parse($transaction->created_at)->format('d/m/Y H:i:s')}}

或者,如果你更喜欢使用一个更自然的12小时计时的时间格式,比如:

07/03/20227:00:00 PM

\{\{ \Carbon\Carbon::parse($transaction->created_at)->format('d/m/Y g:i:s A')}}

下面是可用于 PHP/Carbon 日期-时间格式的 变量完整列表变量完整列表