laravel carbon 使用

国内资料:

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值