我想更改从数据库中提取的日期格式.现在我得到2016-10-01 {{$user->from_date}}.我想在laravel 5.3中改变格式'dmy'
{{ $user->from_date->format('d/m/Y')}}
Run Code Online (Sandbox Code Playgroud)
Ham*_*raj 108
在Laravel中使用碳是好的
{{ \Carbon\Carbon::parse($user->from_date)->format('d/m/Y')}}
Run Code Online (Sandbox Code Playgroud)
May*_*eyz 95
试试这个:
date('d-m-Y', strtotime($user->from_date));
Run Code Online (Sandbox Code Playgroud)
它会将日期转换为d-m-Y格式.
注意:此解决方案是适用于php及其任何框架的通用解决方案.对于Laravel特定方法,请尝试Hamelraj提供的解决方案.
Hor*_*ias 46
在您的模型集中:
protected $dates = ['name_field'];
Run Code Online (Sandbox Code Playgroud)
在你看来之后:
{{ $user->from_date->format('d/m/Y') }}
Run Code Online (Sandbox Code Playgroud)
作品
Mar*_*iba 32
您可以查看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');
}
Run Code Online (Sandbox Code Playgroud)
然后在视图中如果你运行{{ $user->from_date }}你将看到你想要的格式.
Dib*_*Roy 13
您可以通过 3 种方式进行操作:
1) 使用 Laravel 模型
$user = \App\User::find(1);
$newDateFormat = $user->created_at->format('d/m/Y');
dd($newDateFormat);
Run Code Online (Sandbox Code Playgroud)
2)使用PHP strtotime
$user = \App\User::find(1);
$newDateFormat2 = date('d/m/Y', strtotime($user->created_at));
dd($newDateFormat2);
Run Code Online (Sandbox Code Playgroud)
3) 使用碳
$user = \App\User::find(1);
$newDateFormat3 = \Carbon\Carbon::parse($user->created_at)->format('d/m/Y');
dd($newDateFormat3);
Run Code Online (Sandbox Code Playgroud)
Uma*_*riq 12
刀片模板中易于使用的日期使用碳那种方式
{{ \Carbon\Carbon::parse($user->from_date)->format('d/m/Y')}}
Run Code Online (Sandbox Code Playgroud)
小智 6
我建议使用它isoFormat来获得更好的网页外观。
{{ \Carbon\Carbon::parse($blog->created_at)->isoFormat('MMM Do YYYY')}}
Run Code Online (Sandbox Code Playgroud)
结果是
2021 年 1 月 21 日
小智 6
在 Laravel 8 中,您可以使用日期转换:https://laravel.com/docs/8.x/eloquent-mutators#date-casting
在您刚刚设置的模型中:
protected $casts = [
'my_custom_datetime_field' => 'datetime'
];
Run Code Online (Sandbox Code Playgroud)
然后在你的刀片模板中你可以使用以下format()方法:
{{ $my_custom_datetime_field->format('d. m. Y') }}
Run Code Online (Sandbox Code Playgroud)
方法一:
使用strtotime()to时间是将日期更改为给定格式的最佳格式。
strtotime() -将任何英文文本日期时间描述解析为Unix时间戳
该函数期望得到一个包含英语日期格式的字符串,并将尝试将该格式解析为相对于现在给出的时间戳的Unix时间戳(自1970年1月1日00:00:00 UTC以来的秒数),或者当前时间(如果未提供)。
例:
<?php
$timestamp = strtotime( "February 26, 2007" );
print date('Y-m-d', $timestamp );
?>
Run Code Online (Sandbox Code Playgroud)
输出:
2007-02-26
Run Code Online (Sandbox Code Playgroud)
方法二:
date_format() -返回一个新的DateTime对象,然后格式化日期:
<?php
$date=date_create("2013-03-15");
echo date_format($date,"Y/m/d H:i:s");
?>
Run Code Online (Sandbox Code Playgroud)
输出:
2013/03/15 00:00:00
Run Code Online (Sandbox Code Playgroud)
我遇到了类似的问题,我想更改格式,但我也希望能够灵活地更改刀片模板引擎中的格式。
因此,我将我的模型设置如下:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
\Carbon\Carbon::setToStringFormat('d-m-Y');
class User extends Model
{
protected $dates = [
'from_date',
];
}
Run Code Online (Sandbox Code Playgroud)
该setToStringFormat会设置所有日期使用这种格式的这种模式。
这对我来说的好处是,我可以在没有 mutator 的情况下拥有我想要的格式,因为使用 mutator,属性作为字符串返回,这意味着在刀片模板中,如果我想,我将不得不写这样的东西更改模板中的格式:
{{ date('Y', strtotime($user->from_date)) }}
Run Code Online (Sandbox Code Playgroud)
这不是很干净。
相反,该属性仍作为 Carbon 实例返回,但它首先以所需格式返回。
这意味着我可以在模板中编写以下更简洁的代码:
{{ $user->from_date->format('Y') }}
Run Code Online (Sandbox Code Playgroud)
除了能够重新格式化 Carbon 实例之外,我还可以对模板中的属性调用各种 Carbon 方法。
这种方法可能存在疏忽;我敢打赌,在模型顶部指定字符串格式不是一个好主意,以防它影响其他脚本。从我目前看到的情况来看,这并没有发生。它仅更改了该模型的默认碳。
在这种情况下,最好将 Carbon 格式设置回模型脚本底部的原始格式。这是一个笨拙的想法,但它适用于每个模型都有自己的格式。
相反,如果您为每个模型使用相同的格式,则在您的 AppServiceProvider 中。这只会使代码更整洁,更易于维护。
您可以使用 Carbon::createFromTimestamp
刀刃
{{ \Carbon\Carbon::createFromTimestamp(strtotime($user->from_date))->format('d-m-Y')}}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
195085 次 |
| 最近记录: |