1. 程式人生 > >laravel carbon 使用

laravel carbon 使用

國內資料:

時間格式本地化

可以在 app/Providers/AppServiceProvider.php 的 boot() 方法中新增下面的程式碼來設定全域性本地化:

public function boot()
{
    \Carbon\Carbon::setLocale('zh');
}

這樣就可以在前臺呼叫,然後顯示中文了。

比如在blade裡顯示文章建立時間:

$article->updated_at->diffForHumans()

就會顯示一週前.

轉圜時區:

$timestamp = date('Y-m-d H:i:s');
$date = Carbon::createFromFormat
('Y-m-d H:i:s', $timestamp, 'Asia/Shanghai'); $date->setTimezone('UTC'); //轉換成utc的時間 echo $date; //現在時區仍然是Asia/Shanghai echo date('Y-m-d H:i:s');

轉換:

function utcToLocal($datetime, $timezone = 'UTC')
{
    $datetime = strtotime($datetime) ? strtotime($datetime) : $datetime;
    $datetime = Carbon::createFromTimestamp
($datetime)->toDateTimeString(); $date = Carbon::createFromFormat('Y-m-d H:i:s', $datetime, 'UTC'); $date->setTimezone($timezone); return $date; } function timeToW3c($datetime) { $timestamp = strtotime($datetime); if (!$timestamp) { return null; } $date = Carbon:
:createFromTimeStamp($timestamp); $w3c = str_replace(' ', 'T', $date->format('Y-m-d H:i:00')); return $w3c; } public function allTimezoneAndTime() { $timeZones = \DateTimeZone::listIdentifiers(); foreach ($timeZones as $key => $value) { $data[] = [ 'timezone' => $value, 'localtime' => utcToLocal(date('Y-m-d H:i:s'), $value)->toDateTimeString(), 'utc_hour' => Carbon::now($value)->offsetHours, ]; } array_multisort(array_column($data, 'utc_hour'), SORT_ASC, $data); return view('admin.test.timezone', compact('data')); }

carbon 官方文件:

carbon支援的格式轉換在這裡:

toDateString() ---輸出格式為:2018-06-07
toFormattedDateString() ---輸出格式為:Jun 7, 2018
toTimeString() ---輸出格式為:07:39:02
toDateTimeString() ---輸出格式為:2018-06-07 07:39:02
toDayDateTimeString() ---輸出格式為:Thu, Jun 7, 2018 7:39 AM
toAtomString() ---輸出格式為:2018-06-07T07:39:02+00:00
toCookieString() ---輸出格式為:Thursday, 07-Jun-2018 07:39:02 UTC
toIso8601String() ---輸出格式為:2018-06-07T07:39:02+00:00
toRfc822String() ---輸出格式為:Thu, 07 Jun 18 07:39:02 +0000
toIso8601ZuluString() ---輸出格式為:2018-06-07T07:39:02Z
toRfc850String() ---輸出格式為:Thursday, 07-Jun-18 07:39:02 UTC
toRfc1036String() ---輸出格式為:Thu, 07 Jun 18 07:39:02 +0000
toRfc1123String() ---輸出格式為:Thu, 07 Jun 2018 07:39:02 +0000
toRfc2822String() ---輸出格式為:Thu, 07 Jun 2018 07:39:02 +0000
toRfc3339String() ---輸出格式為:2018-06-07T07:39:02+00:00
toRssString() ---輸出格式為:Thu, 07 Jun 2018 07:39:02 +0000
toW3cString() ---輸出格式為:2018-06-07T07:39:02+00:00
toRfc7231String() ---輸出格式為:Thu, 07 Jun 2018 07:39:02 GMT