измените формат даты на странице просмотра laravel
Я хочу изменить формат даты, который извлекается из базы данных.
теперь у меня есть 2016-10-01{{$user->from_date}}
.Я хочу изменить формат 'd-m-y' в laravel 5.3
{{ $user->from_date->format('d/m/Y')}}
8 answers
Попробуйте это:
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 }}
, вы увидите нужный формат.
В вашем наборе моделей:
protected $dates = ['name_field'];
После, по вашему мнению:
{{ $user->from_date->format('d/m/Y') }}
Работает
Простая в использовании дата в шаблоне блейда Углерод таким образом
{{ \Carbon\Carbon::parse($user->from_date)->format('d/m/Y')}}
Способ первый:
Использование strtotime()
для времени - лучший формат для изменения даты в заданный формат.
strtotime()
- Проанализируйте любое текстовое описание даты и времени на английском языке в метку времени Unix
Функция ожидает, что ей будет предоставлена строка, содержащая формат даты на английском языке, и попытается проанализировать этот формат в метку времени Unix (количество секунд с 1 января 1970 года 00:00:00 UTC) относительно метки времени, указанной в сейчас, или текущего времени, если сейчас не поставляется.
Пример:
<?php
$timestamp = strtotime( "February 26, 2007" );
print date('Y-m-d', $timestamp );
?>
Выход:
2007-02-26
Способ второй:
date_format()
- Верните новый объект DateTime, а затем отформатируйте дату:
<?php
$date=date_create("2013-03-15");
echo date_format($date,"Y/m/d H:i:s");
?>
Выход:
2013/03/15 00:00:00
У меня была аналогичная проблема, я хотел изменить формат, но я также хотел иметь возможность гибко изменять формат и в движке шаблонов блейдов.
Поэтому я настроил свою модель следующим образом:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
\Carbon\Carbon::setToStringFormat('d-m-Y');
class User extends Model
{
protected $dates = [
'from_date',
];
}
setToStringFormat
установит все даты, чтобы использовать этот формат для этой модели.
Преимущество этого для меня в том, что я мог бы иметь нужный формат без мутатора, потому что с помощью мутатора атрибут возвращается в виде строки, означающей, что в шаблон блейда Мне пришлось бы написать что-то вроде этого, если бы я хотел изменить формат в шаблоне:
{{ date('Y', strtotime($user->from_date)) }}
Что не очень чисто.
Вместо этого атрибут по-прежнему возвращается как экземпляр Carbon, однако сначала он возвращается в нужном формате.
Это означает, что в шаблоне я мог бы написать следующий, более чистый код:
{{ $user->from_date->format('Y') }}
В дополнение к возможности переформатировать экземпляр Carbon, я также могу вызывать различные методы Carbon для атрибута в шаблон.
Вероятно, в этом подходе есть упущение; Я готов поспорить, что не стоит указывать формат строки в верхней части модели на случай, если это повлияет на другие сценарии. Из того, что я видел до сих пор, этого не произошло. Он изменил только углерод по умолчанию только для этой модели.
В этом случае было бы неплохо вернуть формат Carbon к тому, каким он был изначально в нижней части сценария модели. Это смелая идея, но это было бы работайте над тем, чтобы каждая модель имела свой собственный формат.
Напротив, если у вас один и тот же формат для каждой модели, то вместо этого в вашем AppServiceProvider. Это просто сделало бы код более аккуратным и простым в обслуживании.
Вы можете использовать Carbon::createFromTimestamp
ЛЕЗВИЕ
{{ \Carbon\Carbon::createFromTimestamp($user->from_date)->format('d-m-Y')}}