国内资料:
http://blog.csdn.net/lbwo001/article/details/53063867
时间格式本地化
可以在 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 官方文档:
http://carbon.nesbot.com/docs/#api-settersfluent
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