Loading... ```php use Carbon\Carbon; // Carbon 类在 Carbon 命名空间中声明 // 获取当前时间 echo Carbon::now(); // 2017-04-07 16:32:28 // 今天 echo Carbon::today(); // 2017-04-07 00:00:00 // 明天 echo Carbon::tomorrow(); // 2017-04-08 00:00:00 // 昨天 echo Carbon::yesterday(); // 2017-04-06 00:00:00 // 获取前一天的开始时间 echo Carbon::now()->yesterday()->startOfDay(); // 2017-04-06 00:00:00 // 获取前一天的结束时间 echo Carbon::now()->yesterday()->endOfDay(); // 2017-04-06 23:59:59 //上一周开始时间 (星期一) echo Carbon::now()->previous()->startOfWeek(); // 2017-03-27 00:00:00 // 这周周一 echo Carbon::now()->startOfWeek(); // 2017-04-03 00:00:00 //上一周结束时间 (星期天) echo Carbon::now()->previous()->endOfWeek(); // 2017-04-02 23:59:59 // 这周周天 echo Carbon::now()->endOfWeek(); // 2017-04-09 23:59:59 //获取上一月的开始时间 echo Carbon::now()->subMonth(1)->startOfMonth(); // 2017-03-01 00:00:00 // 获取上一月的结束时间 echo Carbon::now()->subMonth(1)->endOfMonth(); // 2017-03-31 23:59:59 // 这个月的第一天开始时间 echo Carbon::now()->startOfMonth(); // 2017-04-01 00:00:00 // 这个月的最后一天结束时间 echo Carbon::now()->endOfMonth(); // 2017-04-30 23:59:59 // 获取上一年的开始时间 echo Carbon::now()->subYear(1)->startOfYear(); // 2016-01-01 00:00:00 // 今年开始时间 echo Carbon::now()->startOfYear(); // 2017-01-01 00:00:00 echo Carbon::now()->lastOfYear()->startOfYear(); // 2017-01-01 00:00:00 // 获取上一年的结束时间 echo Carbon::now()->subYear(1)->endOfYear(); // 2016-12-31 23:59:59 // 今年结束时间 echo Carbon::now()->endOfYear(); // 2017-12-31 23:59:59 echo Carbon::now()->lastOfYear()->endOfYear(); // 2017-12-31 23:59:59 // 获取当前时间的固定格式 echo Carbon::now()->format('Y-m-d'); // 2017-04-07 // 几号 echo Carbon::now()->day; // 7 // 几月 echo Carbon::now()->month; // 4 // 年 echo Carbon::now()->year; // 2017 // 小时 echo Carbon::now()->hour; // 分钟 echo Carbon::now()->minute; // 上周的今天是星期几 echo Carbon::now()->dayOfWeek; // 5 // 今天是365天中的第几天 echo Carbon::now()->dayOfYear; // 96 // 这个月中的第几周 echo Carbon::now()->weekOfMonth; // 1 // 年中的第几周 echo Carbon::now()->weekOfYear; // 14 // 季度 echo Carbon::now()->quarter; // 2 // 几岁 echo Carbon::createFromDate(1991, 5, 21)->age; // 25 // 这个月有几天 echo Carbon::now()->daysInMonth; // 30 var_dump(isset(Carbon::now()->hour)); // bool(true) var_dump(empty(Carbon::now()->year)); // bool(false) echo Carbon::now()->year(2017)->month(5)->day(21)->hour(22)->minute(32)->second(5)->toDateTimeString(); // 2017-05-21 22:32:05 echo Carbon::now()->setDate(2017, 5, 21)->setTime(22, 32, 5)->toDateTimeString(); // 2017-05-21 22:32:05 echo Carbon::now()->setDateTime(2017, 5, 21, 22, 32, 5)->toDateTimeString(); // 2017-05-21 22:32:05 // 日期解析 echo new Carbon('now'); echo Carbon::parse('now'); // 2017-04-07 17:54:35 echo Carbon::parse('today'); // 2017-04-07 00:00:00 echo Carbon::parse('yesterday'); // 2017-04-06 00:00:00 echo Carbon::parse('2 days ago'); // 2017-04-05 17:56:28 echo Carbon::parse('+3 days'); // 2017-04-10 17:57:14 echo Carbon::parse('-3 days'); // 2017-04-04 17:57:37 echo Carbon::parse('+2 weeks'); // 2017-04-21 17:58:05 echo Carbon::parse('+4 months'); // 2017-08-07 17:58:32 echo Carbon::parse('-1 year'); // 2016-04-07 17:58:56 echo Carbon::parse('next wednesday'); // 2017-04-12 00:00:00 echo Carbon::parse('last friday'); // 2017-03-31 00:00:00 // 将carbon对象转换成string类型 echo Carbon::createFromTimestamp(-1)->toDateTimeString(); // 1970-01-01 07:59:59 echo Carbon::now()->toDateString(); // 2017-04-07 echo Carbon::now()->toDateTimeString(); // 2017-04-07 16:53:28 echo Carbon::now()->toFormattedDateString(); // Apr 7, 2017 echo Carbon::now()->toTimeString(); // 18:04:00 echo Carbon::now()->toDayDateTimeString(); // Fri, Apr 7, 2017 6:04 PM // 获取当前时间的时间戳 echo Carbon::now()->timestamp; // 1491554091 echo Carbon::now()->timestamp(1491554091)->toDateTimeString(); // 2017-04-07 16:34:51 // 设置当前地区的时区 echo Carbon::now()->timezone('Asia/Shanghai'); // 2017-04-07 16:35:35 // 直接使用字符串 echo Carbon::now('Europe/London'); // 2017-04-07 09:36:41 // createFromDate()将默认的时间到现在。 createFromTime()将日期默认为今天。 echo Carbon::createFromDate(2018, 1, 1, 'Europe/London'); // 2018-01-01 16:39:40 echo Carbon::createFromFormat('Y-m-d H', '1975-05-21 22')->toDateTimeString(); // 1975-05-21 22:00:00 echo Carbon::createFromFormat('Y-m-d H', '1975-05-21 22'); // 1975-05-21 22:00:00 // create()将默认任何null参数到当前相应的值 echo Carbon::create(2000, 1, 1, 0, 0, 0); // 2000-01-01 00:00:00 // 日期比较 echo Carbon::now()->tzName; // PRC $first = Carbon::create(2017, 4, 10, 11, 26, 30); $second = Carbon::create(2017, 4, 10, 11, 26, 30, 'Asia/Shanghai'); echo $first->toDateTimeString(); // 2017-04-10 11:26:30 echo $first->tzName; // PRC echo $second->toDateTimeString(); // 2017-04-10 11:26:30 echo $second->tzName; // Asia/Shanghai // 判断两个日期是否相等 var_dump($first->eq($second)); // bool(true) // 判断第一个日期是否不等于第二个日期 var_dump($first->ne($second)); // bool(false) // 判断第一个日期是否比第二个日期大 var_dump($first->gt($second)); // bool(false) // 判断第一个日期是否大于等于第二个日期 var_dump($first->gte($second)); // bool(true) // 判断第一个日期是否比第二个日期小 var_dump($first->lt($second)); // bool(false) // 判断第一个日期是否小于等于第二个日期 var_dump($first->lte($second)); // bool(true) // 设置日期和时间 $first->setDateTime(2017, 1, 1, 0, 0, 0); $second->setDateTime(2017, 1, 1, 0, 0, 0); var_dump($first->eq($second)); // bool(true) var_dump($first->ne($second)); // bool(false) var_dump($first->gt($second)); // bool(false) var_dump($first->gte($second)); // bool(true) var_dump($first->lt($second)); // bool(false) var_dump($first->lte($second)); // bool(true) // 要判断一个日期是否介于两个日期之间,可以使用 between() 方法,第三个可选参数指定比较是否可以相等,默认为 true $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)); // bool(true) var_dump(Carbon::create(2012, 9, 5, 5)->between($first, $second)); // bool(true) var_dump(Carbon::create(2012, 9, 5, 5)->between($first, $second, false)); // bool(false) $dt1 = Carbon::create(2012, 1, 1, 0, 0, 0); $dt2 = Carbon::create(2014, 1, 30, 0, 0, 0); // 返回最小日期 echo $dt1->min($dt2); // 2012-01-01 00:00:00 $dt1 = Carbon::create(2012, 1, 1, 0, 0, 0); $dt2 = Carbon::create(2014, 1, 30, 0, 0, 0); // 返回最大日期 echo $dt1->max($dt2); // 2014-01-30 00:00:00 // now is the default param $dt1 = Carbon::create(2000, 1, 1, 0, 0, 0); echo $dt1->max(); // 2017-04-10 11:51:23 $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)); // bool(false) var_dump($born->isBirthday($yesCake)); // bool(true) var_dump($overTheHill->isBirthday()); // bool(true) -> default compare it to today! // 日期操作 // add(增加), sub(减去) $dt = Carbon::create(2017, 4, 10, 0); echo $dt->toDateTimeString(); // 2017-04-10 00:00:00 echo $dt->addYears(5); // 2022-04-10 00:00:00 echo $dt->addYear(); // 2023-04-10 00:00:00 echo $dt->subYear(); // 2022-04-10 00:00:00 echo $dt->subYears(5); // 2017-04-10 00:00:00 echo $dt->addMonths(6); // 2017-10-10 00:00:00 echo $dt->addMonth(); // 2017-11-10 00:00:00 equivalent of $dt->month($dt->month + 1); so it wraps echo $dt->subMonth(); // 2017-10-10 00:00:00 echo $dt->subMonths(6); // 2017-04-10 00:00:00 echo $dt->addDays(5); // 2017-04-15 00:00:00 echo $dt->addDay(); // 2017-04-16 00:00:00 echo $dt->subDay(); // 2017-04-15 00:00:00 echo $dt->subDays(5); // 2017-04-10 00:00:00 echo $dt->addWeekdays(4); // 2017-04-14 00:00:00 echo $dt->addWeekday(); // 2017-04-17 00:00:00 echo $dt->subWeekday(); // 2017-04-14 00:00:00 echo $dt->subWeekdays(4); // 2017-04-10 00:00:00 echo $dt->addWeeks(1); // 2017-04-17 00:00:00 echo $dt->addWeek(); // 2017-04-24 00:00:00 echo $dt->subWeek(); // 2017-04-17 00:00:00 echo $dt->subWeeks(1); // 2017-04-10 00:00:00 echo $dt->addHours(24); // 2017-04-11 00:00:00 echo $dt->addHour(); // 2017-04-11 01:00:00 echo $dt->subHour(); // 2017-04-11 00:00:00 echo $dt->subHours(24); // 2017-04-10 00:00:00 echo $dt->addMinutes(61); // 2017-04-10 01:01:00 echo $dt->addMinute(); // 2017-04-10 01:02:00 echo $dt->subMinute(); // 2017-04-10 01:01:00 echo $dt->subMinutes(61); // 2017-04-10 00:00:00 echo $dt->addSeconds(61); // 2017-04-10 00:01:01 echo $dt->addSecond(); // 2017-04-10 00:01:02 echo $dt->subSecond(); // 2017-04-10 00:01:01 echo $dt->subSeconds(61); // 2017-04-10 00:00:00 // modify 方法,参数格式为 + 或 - 跟上值及单位 echo Carbon::now()->modify('+15 days'); // 2017-04-25 12:26:02 echo Carbon::now()->modify('-2 days'); // 2017-04-08 12:26:02 echo Carbon::now()->modify('-2 day'); // 2017-04-08 12:28:31 echo Carbon::now()->modify('-2 weekday'); // 2017-04-06 00:00:00 echo Carbon::now()->modify('-2 month'); // 2017-02-10 12:29:36 echo Carbon::now()->modify('-2 year'); // 2015-04-10 12:31:13 echo Carbon::now()->modify('-2 week'); // 2017-03-27 12:31:13 echo Carbon::now()->modify('-2 hour'); // 2017-04-10 10:31:13 echo Carbon::now()->modify('-2 minute'); // 2017-04-10 12:29:13 echo Carbon::now()->modify('-2 second'); // 2017-04-10 12:31:11 echo Carbon::now()->subDays(5)->diffForHumans(); // 5天前 echo Carbon::now()->diffForHumans(Carbon::now()->subYear()); // 1年后 $dt = Carbon::createFromDate(2017, 4, 1); echo $dt->diffForHumans($dt->copy()->addMonth()); // 1月前 echo $dt->diffForHumans($dt->copy()->subMonth()); // 1月后 echo Carbon::now()->addSeconds(5)->diffForHumans(); // 距现在5秒 echo Carbon::now()->subDays(24)->diffForHumans(); // 3周前 echo Carbon::now()->subDays(24)->diffForHumans(null, true); // 3周 $dt = Carbon::now(); // 年的差异 echo $dt->diffInYears($dt->copy()->addYear(2)); // 2 echo $dt->diffInMonths(); // 0 echo $dt->diffInMinutes(); // 0 //指定返回日期的格式 $now = Carbon::now();// 2020-03-14 15:18:34 $firstDay = $now->firstOfMonth()->format('Ymd');// 20200301 $lastDay = $now->lastOfMonth()->format('Ymd');// 20200331 //根据当地描述事件格式 $dt = Carbon::now("Asia/Shanghai"); echo $dt; setlocale(LC_TIME, 'Chinese'); var_dump($dt->localeDayOfWeek); setlocale(LC_TIME, ''); ``` Last modification:May 16, 2023 © Allow specification reprint Like 1 如果觉得我的文章对你有用,请随意赞赏