Php 在laravel视图页面中更改日期格式
我想更改从数据库中提取的日期格式。 现在我得到了2016-10-01Php 在laravel视图页面中更改日期格式,php,laravel,date,Php,Laravel,Date,我想更改从数据库中提取的日期格式。 现在我得到了2016-10-01{{$user->from_date}}。我想更改laravel 5.3中的格式“d-m-y” {{ $user->from_date->format('d/m/Y')}} 试试这个: date('d-m-Y', strtotime($user->from_date)); 它会将日期转换为d-m-Y或您给定的任何格式 注意:此解决方案是适用于php及其任何框架的通用解决方案。对于Laravel特定的方法,请
{{$user->from_date}}
。我想更改laravel 5.3中的格式“d-m-y”
{{ $user->from_date->format('d/m/Y')}}
试试这个:
date('d-m-Y', strtotime($user->from_date));
它会将日期转换为d-m-Y
或您给定的任何格式
注意:此解决方案是适用于php及其任何框架的通用解决方案。对于Laravel特定的方法,请尝试使用。在Laravel useCarbon中提供的解决方案
{{ \Carbon\Carbon::parse($user->from_date)->format('d/m/Y')}}
您可以检查日期变量: 您需要在
$dates
数组中的User
model列from\u date
中设置,然后您可以在$dateFormat
中更改格式
另一个选项是将此方法应用于您的用户
模型:
public function getFromDateAttribute($value) {
return \Carbon\Carbon::parse($value)->format('d-m-Y');
}
然后在视图中,如果您运行
{{$user->from\u date}}
,您将看到所需的格式。方法一:
<?php
$timestamp = strtotime( "February 26, 2007" );
print date('Y-m-d', $timestamp );
?>
2007-02-26
2013/03/15 00:00:00
使用strotime()
to time是将日期更改为给定格式的最佳格式
strotime()
-将任何英文文本datetime描述解析为Unix时间戳
该函数期望得到一个包含英文日期格式的字符串,并将尝试将该格式解析为Unix时间戳(自1970年1月1日00:00:00 UTC以来的秒数),相对于now中给出的时间戳,或当前时间(如果未提供now)
示例:
<?php
$timestamp = strtotime( "February 26, 2007" );
print date('Y-m-d', $timestamp );
?>
2007-02-26
2013/03/15 00:00:00
方法二:
<?php
$timestamp = strtotime( "February 26, 2007" );
print date('Y-m-d', $timestamp );
?>
2007-02-26
2013/03/15 00:00:00
date\u format()
-返回一个新的DateTime对象,然后格式化日期:
<?php
$date=date_create("2013-03-15");
echo date_format($date,"Y/m/d H:i:s");
?>
在模型集中:
protected $dates = ['name_field'];
在你看来:
{{ $user->from_date->format('d/m/Y') }}
工作原理刀片模板中的日期使用方便
{{ \Carbon\Carbon::parse($user->from_date)->format('d/m/Y')}}
我有一个类似的问题,我想更改格式,但我也希望能够灵活地更改刀片模板引擎中的格式 一、 因此,请按以下方式设置我的模型:
您可以使用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) 利用拉威尔模型
$user = \App\User::find(1);
$newDateFormat = $user->created_at->format('d/m/Y');
dd($newDateFormat);
2) 使用PHP strotime
$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日
在Laravel 8中,您可以使用日期转换:
在您的模型中,仅设置:
protected $casts = [
'my_custom_datetime_field' => 'datetime'
];
然后在刀片模板中,您可以使用format()
方法:
{{ $my_custom_datetime_field->format('d. m. Y') }}
@user3386779:它可以工作,但不是最漂亮的解决方案:)Laravel没有什么机制来做这件事。如果你选择我的答案,你需要在一个地方设置日期格式,而不需要记得每次需要显示“从日期开始”列时都要更改日期格式。@MarekSkiba我在我的答案中也提到了同样的事情:)如何更改语言,例如->“es”几个月名称同意你应该使用@sadiq$user->from_date->format('d/m/Y')非常好而且非常简单的解决方案。同意这是Laravelt更好的方法唯一的缺点是它会向视图返回字符串;因此,如果要在同一视图中显示不同的日期格式,则必须使用碳元素重新分析日期。很抱歉,这是一个变量,因为它使用getFromDateAttribute而不是setFromDateAttribute。据我所知,mutator使用set,accessor使用getThis return current date,如果列为null,我认为这是最“laravel”的方法,所以应该标记为正确答案。我也同意,这是最好的方法,对我来说不起作用。我一直在研究datetime列类型和timestamp列类型,但错误仍然是调用null上的成员函数format()
如果在模型中使用Laravel的时间戳,然后,在
处创建的和在
处更新的字段将已经合并到$dates
中,因此无需在模型中添加这些特定字段。这至少是在拉威尔8号!是的,当$user->from_date为null
时会发生什么?@lewis4u如果将null值传递到parse(null)
中,它将转换为当前日期timeCorrect。。。在某些情况下,这是不好的!所以小心!这不是laravel的问题,这与php有关。阅读:通过查看各个组件之间的分隔符,可以消除m/d/y
或d-m-y
格式中的日期歧义:如果分隔符是斜杠(/)
,则假定为美式m/d/y
;然而,如果分隔符为破折号(
或点(.)
,则假定为欧洲d-m-y
格式。但是,如果年份以两位数格式给出,且分隔符为破折号(
),则日期字符串解析为y-m-d
。