2015-10-16 48 views
1

我是新來laravel。我正在處理一個具有大量日期時間值的項目,這些值將顯示在UI上。在代碼點火器中,我用來創建一個如下所示的函數,並將其放入幫助程序目錄並在我的應用程序中提供。如何創建一個函數,並使其全球可用格式datetime laravel 5

function datetime_to_text($datetime){ 
    return date('j F Y, g:i a', strtotime($datetime)); 
} 

如何使全球在laravel 5提供這樣的功能(可在我的兩個視圖和控制器訪問)

+0

你見過'http:// laravel.com/docs/5.1/eloquent-mutators#date-mutators'和'https:// github.com/briannesbitt/Carbon'嗎? –

回答

2

日期時間在Laravel轉換爲Carbon對象。

碳是精彩庫。

默認情況下,created_at,updated_atdeleted_at會自動轉換爲您。如果你在你的表中的其他DATETIME列,您只需將它們添加到$dates陣列在你的口才型號:

class User { 
    protected $dates = ['logged_in_at']; 
} 

http://laravel.com/docs/5.1/eloquent-mutators#date-mutators

現在,當您迴應$object->created_at,它調用碳__toString()方法。您可以設置默認格式:

Carbon::setToStringFormat('j F Y, g:i a'); 

或者,你可以很容易地

echo $object->created_at->format('j F Y, g:i a'); 

http://carbon.nesbot.com/docs/#api-formatting

+0

謝謝@andrewtweber。我應該在哪裏放置Carbon :: setToStringFormat('j F Y,g:i a');所以我不必做$ object-> created_at-> format('j F Y,g:i a');每次。我正在使用刀片來表達我的觀點。 –

+0

我的目標是讓我有一個地方可以改變我的日期時間格式。 Carbon :: setToStringFormat('j F Y,g:i a');是我真正想要的,但我不知道在哪裏設置。我把它放在我的模型中,但不斷出錯。我已經提出了我的看法,但也沒有工作。感謝你的幫助。 –

+0

@FokwaBest嘗試將其放入您的應用服務提供商。 'app/Providers/AppServiceProvider.php'我認爲是該文件。這是放置全局「啓動」事物的好地方 – andrewtweber

-1

格式化的東西很可能有助於笨專家:

您可以創建app/Helpers/(製作Helpers目錄)中的文件

喜歡:app/Helpers/HelperClass.php

<?php 
namespace App\Helpers; 

use Carbon\Carbon; 

class HelperClass{ 

    public static function updatedOn($updated_at) 
    { 
     return 'Last updated '. $updated_at->diffForHumans(); 
    } 
} 

現在你已經在添加此HelperClassconfig/app.php

'aliases' => [ 
    ..., 
    'HelperClass' => 'App\Libraries\HelperClass' 
] 

現在只需撥打您的視圖頁面:

<div class="col-md-12"> 
    {!! HelperClass::updatedOn($data->updated_at) !!} 
</div> 

輸出像:Last updated 5 minutes ago.

+0

這很有趣。我會試驗這個技巧,看看我得到了什麼。 –

+0

非常感謝AnowarCst。你和@andrewtweber的答案給了我難以置信的洞察力。我現在在我的項目中使用這兩種技術。 –

+0

這太棒了:),繼續@FokwaBest –

相關問題