Hoe's Notes

Carbon 日期时间处理利器


介绍

Carbon是对PHP DateTime模块的二次扩展;提供时间格式化,时间计算的功能等

官方主页为 http://carbon.nesbot.com/
官方文档为 http://carbon.nesbot.com/docs/
Github地址为 https://github.com/briannesbitt/Carbon

安装

1.通过 Composer 安装

$ composer require nesbot/carbon

2.或手动安装

{
    "require": {
        "nesbot/carbon": "~1.21"
    }
}

3.直接引入

<?php
require 'vendor/autoload.php';
use Carbon\Carbon;
printf("Now: %s", Carbon::now());

Carbon基本用法

$start = Carbon::now()->today(); // 时间对象
$startStr = $start->format('Y-m-d'); // 当天 2017-07-26
$endStr = $start->addDay()->format('Y-m-d'); // 加一天 2017-07-27

// 1、基本应用
$start_today = Carbon::today()->toDateString();  // 今天2017-07-27
$end_today = Carbon::tomorrow()->toDateString(); // 明天2017-07-28
$yesterday = Carbon::yesterday();        // 昨天

// 2、判断是否是某一天(2016-11-03(周四)举例)
$now = Carbon::now();
var_dump($now->isWeekend());//false 因为周四不是周末
var_dump($now->isWeekday());//true  因为周四是工作日
var_dump($now->isThursday());//true 因为今天是周四
$now->isToday();
$now->isTomorrow();
$now->isFuture();
$now->isPast();

// 3、创建某一天的carbon对象并且进行加减计算
$date = Carbon::create(2016, 12, 25, 0, 0, 0); // 2016-12-25 00:00:00
$next_year=$date->addYears(2); // 2018-12-25 00:00:00
$past_year=$date->subYears(2); // 2014-12-25 00:00:00
$next_month=$date->addMonths(2); // 2017-02-25 00:00:00
$past_month=$date->subMonths(2); // 2016-10-25 00:00:00
$next_day=$date->addDays(2); // 2016-12-27 00:00:00
$past_day=$date->subDays(2); // 2016-12-23 00:00:00
// ...更有addWeekdays()、addWeeks()、addHours()等方法

// 4、将carbon对象转换成string类型
$dt = Carbon::create(1975, 12, 25, 14, 15, 16);
echo $dt->toDateString();                          // 1975-12-25
echo $dt->toFormattedDateString();                 // Dec 25, 1975
echo $dt->toTimeString();                          // 14:15:16
echo $dt->toDateTimeString();                      // 1975-12-25 14:15:16
echo $dt->toDayDateTimeString();                   // Thu, Dec 25, 1975 2:15 PM