ProgramingTip

페이지에서 날짜 형식 변경

bestdevel 2020. 12. 9. 21:32
반응형

페이지에서 날짜 형식 변경


데이터베이스에서 날짜 형식을 변경하고 싶습니다. 이제 2016-10-01 {{$user->from_date}}. laravel 5.3에서 'dmy'형식을 변경하고 싶습니다.

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

이 시도 :

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')}}

모델 세트에서 :

protected $dates = ['name_field'];

당신의 관점에서 :

{{ $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 }}하면 원하는 형식을 볼 수 있습니다.


블레이드 템플릿에서 사용하기 쉬운 날짜는 그런 식으로 카본사용 합니다.

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

방법 1 :

strtotime()종료 시간을 사용하는 것이 주어진 형식으로 변경하는 가장 좋은 형식입니다.

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

방법 2 :

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 

다음과 같은 3 가지 방법이 있습니다.

1) 라 라벨 모델 사용

$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);

신고 문제가 있습니다. 형식을 변경하고 싶었지만 블레이드 템플릿 엔진 회의 형식을 설명 수있는 유연성을 원했습니다.

따라서 내 모델을 다음과 같이 설정합니다.

<?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')}}

때때로 날짜 형식을 변경하면 특히 Laravel에서 제대로 작동하지 않습니다. 따라서이 경우 다음을 사용하는 것이 좋습니다.

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

그러면 "1970-01-01"과 같은 오류를 피할 수 있습니다!


라 라벨에서는 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');

도움이 되었기를 바랍니다.

참고 URL : https://stackoverflow.com/questions/40038521/change-the-date-format-in-laravel-view-page

반응형