#1 本地化
\Carbon\Carbon::setLocale('zh');
#2 常用语句
use Carbon\Carbon;
echo Carbon::now();
echo Carbon::today();
echo Carbon::tomorrow();
echo Carbon::yesterday();
echo Carbon::now()->yesterday()->startOfDay();
echo Carbon::now()->yesterday()->endOfDay();
echo Carbon::now()->previous()->startOfWeek();
echo Carbon::now()->startOfWeek();
echo Carbon::now()->previous()->endOfWeek();
echo Carbon::now()->endOfWeek();
echo Carbon::now()->subMonth(1)->startOfMonth();
echo Carbon::now()->subMonth(1)->endOfMonth();
echo Carbon::now()->startOfMonth();
echo Carbon::now()->endOfMonth();
echo Carbon::now()->subYear(1)->startOfYear();
echo Carbon::now()->startOfYear();
echo Carbon::now()->lastOfYear()->startOfYear();
echo Carbon::now()->subYear(1)->endOfYear();
echo Carbon::now()->endOfYear();
echo Carbon::now()->lastOfYear()->endOfYear();
echo Carbon::now()->format('Y-m-d');
echo Carbon::now()->day;
echo Carbon::now()->month;
echo Carbon::now()->year;
echo Carbon::now()->hour;
echo Carbon::now()->minute;
echo Carbon::now()->dayOfWeek;
echo Carbon::now()->dayOfYear;
echo Carbon::now()->weekOfMonth;
echo Carbon::now()->weekOfYear;
echo Carbon::now()->quarter;
echo Carbon::createFromDate(1991, 5, 21)->age;
echo Carbon::now()->daysInMonth;
var_dump(isset(Carbon::now()->hour));
var_dump(empty(Carbon::now()->year));
echo Carbon::now()->year(2017)->month(5)->day(21)->hour(22)->minute(32)->second(5)->toDateTimeString();
echo Carbon::now()->setDate(2017, 5, 21)->setTime(22, 32, 5)->toDateTimeString();
echo Carbon::now()->setDateTime(2017, 5, 21, 22, 32, 5)->toDateTimeString();
echo new Carbon('now');
echo Carbon::parse('now');
echo Carbon::parse('today');
echo Carbon::parse('yesterday');
echo Carbon::parse('2 days ago');
echo Carbon::parse('+3 days');
echo Carbon::parse('-3 days');
echo Carbon::parse('+2 weeks');
echo Carbon::parse('+4 months');
echo Carbon::parse('-1 year');
echo Carbon::parse('next wednesday');
echo Carbon::parse('last friday');
echo Carbon::createFromTimestamp(-1)->toDateTimeString();
echo Carbon::now()->toDateString();
echo Carbon::now()->toDateTimeString();
echo Carbon::now()->toFormattedDateString();
echo Carbon::now()->toTimeString();
echo Carbon::now()->toDayDateTimeString();
echo Carbon::now()->timestamp;
echo Carbon::now()->timestamp(1491554091)->toDateTimeString();
echo Carbon::now()->timezone('Asia/Shanghai');
echo Carbon::now('Europe/London');
echo Carbon::createFromDate(2018, 1, 1, 'Europe/London');
echo Carbon::createFromFormat('Y-m-d H', '1975-05-21 22')->toDateTimeString();
echo Carbon::createFromFormat('Y-m-d H', '1975-05-21 22');
echo Carbon::create(2000, 1, 1, 0, 0, 0);
echo Carbon::now()->tzName;
$first = Carbon::create(2017, 4, 10, 11, 26, 30);
$second = Carbon::create(2017, 4, 10, 11, 26, 30, 'Asia/Shanghai');
echo $first->toDateTimeString();
echo $first->tzName;
echo $second->toDateTimeString();
echo $second->tzName;
var_dump($first->eq($second));
var_dump($first->ne($second));
var_dump($first->gt($second));
var_dump($first->gte($second));
var_dump($first->lt($second));
var_dump($first->lte($second));
$first->setDateTime(2017, 1, 1, 0, 0, 0);
$second->setDateTime(2017, 1, 1, 0, 0, 0);
var_dump($first->eq($second));
var_dump($first->ne($second));
var_dump($first->gt($second));
var_dump($first->gte($second));
var_dump($first->lt($second));
var_dump($first->lte($second));
$first = Carbon::create(2012, 9, 5, 1);
$second = Carbon::create(2012, 9, 5, 5);
var_dump(Carbon::create(2012, 9, 5, 3)->between($first, $second));
var_dump(Carbon::create(2012, 9, 5, 5)->between($first, $second));
var_dump(Carbon::create(2012, 9, 5, 5)->between($first, $second, false));
$dt1 = Carbon::create(2012, 1, 1, 0, 0, 0);
$dt2 = Carbon::create(2014, 1, 30, 0, 0, 0);
echo $dt1->min($dt2);
$dt1 = Carbon::create(2012, 1, 1, 0, 0, 0);
$dt2 = Carbon::create(2014, 1, 30, 0, 0, 0);
echo $dt1->max($dt2);
$dt1 = Carbon::create(2000, 1, 1, 0, 0, 0);
echo $dt1->max();
$dt = Carbon::now();
$dt->isWeekday();
$dt->isWeekend();
$dt->isYesterday();
$dt->isToday();
$dt->isTomorrow();
$dt->isFuture();
$dt->isPast();
$dt->isLeapYear();
$dt->isSameDay(Carbon::now());
$born = Carbon::createFromDate(1987, 4, 23);
$noCake = Carbon::createFromDate(2014, 9, 26);
$yesCake = Carbon::createFromDate(2014, 4, 23);
$overTheHill = Carbon::now()->subYears(50);
var_dump($born->isBirthday($noCake));
var_dump($born->isBirthday($yesCake));
var_dump($overTheHill->isBirthday());
$dt = Carbon::create(2017, 4, 10, 0);
echo $dt->toDateTimeString();
echo $dt->addYears(5);
echo $dt->addYear();
echo $dt->subYear();
echo $dt->subYears(5);
echo $dt->addMonths(6);
echo $dt->addMonth();
echo $dt->subMonth();
echo $dt->subMonths(6);
echo $dt->addDays(5);
echo $dt->addDay();
echo $dt->subDay();
echo $dt->subDays(5);
echo $dt->addWeekdays(4);
echo $dt->addWeekday();
echo $dt->subWeekday();
echo $dt->subWeekdays(4);
echo $dt->addWeeks(1);
echo $dt->addWeek();
echo $dt->subWeek();
echo $dt->subWeeks(1);
echo $dt->addHours(24);
echo $dt->addHour();
echo $dt->subHour();
echo $dt->subHours(24);
echo $dt->addMinutes(61);
echo $dt->addMinute();
echo $dt->subMinute();
echo $dt->subMinutes(61);
echo $dt->addSeconds(61);
echo $dt->addSecond();
echo $dt->subSecond();
echo $dt->subSeconds(61);
echo Carbon::now()->modify('+15 days');
echo Carbon::now()->modify('-2 days');
echo Carbon::now()->modify('-2 day');
echo Carbon::now()->modify('-2 weekday');
echo Carbon::now()->modify('-2 month');
echo Carbon::now()->modify('-2 year');
echo Carbon::now()->modify('-2 week');
echo Carbon::now()->modify('-2 hour');
echo Carbon::now()->modify('-2 minute');
echo Carbon::now()->modify('-2 second');
echo Carbon::now()->subDays(5)->diffForHumans();
echo Carbon::now()->diffForHumans(Carbon::now()->subYear());
$dt = Carbon::createFromDate(2017, 4, 1);
echo $dt->diffForHumans($dt->copy()->addMonth());
echo $dt->diffForHumans($dt->copy()->subMonth());
echo Carbon::now()->addSeconds(5)->diffForHumans();
echo Carbon::now()->subDays(24)->diffForHumans();
echo Carbon::now()->subDays(24)->diffForHumans(null, true);
$dt = Carbon::now();
echo $dt->diffInYears($dt->copy()->addYear(2));
echo $dt->diffInMonths();
echo $dt->diffInMinutes();