php视图显⽰当前时间,关于php:在laravel视图页⾯中更改⽇
期格式
我想更改从数据库中获取的⽇期格式。
现在我得到了2016-10-01 {{$user->from_date}}。我想在laravel 5.3中更改格式'd-m-y'
{{ $user->from_date->format('d/m/Y')}}
在Laravel中使⽤Carbon的好处
{{ \Carbon\Carbon::parse($user->from_date)->format('d/m/Y')}}
尝试这个:
date('d-m-Y', strtotime($user->from_date));
它将⽇期转换为d-m-Y格式。
注意:此解决⽅案是适⽤于php及其任何框架的通⽤解决⽅案。对于Laravel特定的⽅法,请尝试使⽤Hamelraj提供的解决⽅案。
@ user3386779:它可以⼯作,但不是最漂亮的解决⽅案:) Laravel很少有机制可以执⾏此操作。 如果选择我的答案,则需要将⽇期格式设置在⼀个地⽅,并且不需要记住每次需要显⽰from_date列时都要更改⽇期格式。
@MarekSkiba我在回答中也提到了同样的事情:)
是的,它对我来说就像⼯作⼀样。 谢谢玛雅克
例如,如何更改语⾔-> es表⽰⽉份名称
$ user-> from_date-> format(d / m / Y)正常
在您的模型集中:
protected $dates = ['name_field'];
在您看来:
{{ $user->from_date->format('d/m/Y') }}
作品
您需要在$dates数组的User模型列from_date中进⾏设置,然后可以在$dateFormat中更改格式
另⼀个选项也将此⽅法应⽤于您的User模型:
public function getFromDateAttribute($value) {
return \Carbon\Carbon::parse($value)->format('d-m-Y');
}
然后在视图中,如果您运⾏{{ $user->from_date }},将看到所需的格式。
这应该被接受的答案。这是laravel中更好的⽅法
同意这是laravel的更好⽅法
这实际上是正确的答案...它遵循Laravels法则。
唯⼀的缺点是它将向视图返回⼀个字符串。 因此,如果您想在同⼀视图中显⽰不同的⽇期格式,则必须使⽤Carbon重新解析⽇期。
⼑⽚模板中易于使⽤的⽇期以这种⽅式使⽤Carbon
{{ \Carbon\Carbon::parse($user->from_date)->format('d/m/Y')}}
⽅法⼀:
使⽤strtotime()计时是将⽇期更改为给定格式的最佳格式。
strtotime()-将任何英⽂⽂本⽇期时间描述解析为Unix时间戳
该函数期望得到⼀个包含英语⽇期格式的字符串,并将尝试将该格式解析为相对于现在给出的时间戳的Unix时间戳(⾃1970年1⽉1⽇00:00:00 UTC以来的秒数),或者当前时间(如果未提供)。
例:
$timestamp = strtotime("February 26, 2007" );
print date('Y-m-d', $timestamp );
>
输出:
2007-02-26
⽅法⼆:
date_format()-返回⼀个新的DateTime对象,然后格式化⽇期:
$date=date_create("2013-03-15");
echo date_format($date,"Y/m/d H:i:s");
>
输出:
2013/03/15 00:00:00
您可以通过3种⽅式进⾏操作:
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);
您可以使⽤Carbon::createFromTimestamp
{{ \Carbon\Carbon::createFromTimestamp($user->from_date)->format('d-m-Y')}}
我有⼀个类似的问题,我想更改格式,但是我也想要能够在⼑⽚模板引擎中更改格式的灵活性。
因此,我将模型设置如下:
namespace App;
use Illuminate\Database\Eloquent\Model;
\Carbon\Carbon::setToStringFormat('d-m-Y');
class User extends Model
{
protected $dates = [
'from_date',
unix时间戳转换日期格式
];
}
setToStringFormat将设置所有⽇期以对该模型使⽤此格式。
对我来说,这样做的好处是,⽆需增幅器,我就可以拥有⾃⼰想要的格式,因为有了增幅器,该属性以字符串形式返回,这意味着在⼑⽚模板中,如果我想更改模板中的格式:
{{ date('Y', strtotime($user->from_date)) }}
这不是很⼲净。
取⽽代之的是,该属性仍然作为Carbon实例返回,但是⾸先以所需的格式返回。
这意味着我可以在模板中编写以下更简洁的代码:
{{ $user->from_date->format('Y') }}
除了能够重新格式化Carbon实例之外,我还可以在模板的属性上调⽤各种Carbon⽅法。
这种⽅法可能会受到监督;我要打赌,在模型顶部指定字符串格式以防影响其他脚本不是⼀个好主意。 根据我到⽬前为⽌所见,这还没有发⽣。它只更改了该模型的默认Carbon。 strike>
在这种情况下,最好将Carbon格式重新设置为模型脚本底部的原始格式。这是⼀个想法,但是对于每个模型都有⾃⼰的格式都可以。
相反,如果每种模型的格式相同,则在AppServiceProvider中。这样只会使代码更整洁,更易于维护。
在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');
希望能帮助到你!
有时更改⽇期格式⽆法正常⼯作,尤其是在Laravel中。因此,在这种情况下,最好使⽤:
$date1 = strtr($_REQUEST['date'], '/', '-');
echo date('Y-m-d', strtotime($date1));
这样就可以避免出现" 1970-01-01"之类的错误!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。