// Asia/shanghai 亚洲/上海 返回Carbon对象 $carbon = \Illuminate\Support\Carbon::now('Asia/shanghai'); // or $carbon = \Illuminate\Support\Carbon::now( new DateTimeZone('Asia/shanghai') );
  • today() , tomorrow() , yesterday() 返回值 Carbon对象
  • // today 今天
    \Carbon\Carbon::today('Asia/shanghai');          // 2019-02-13 00:00:00
    // tomorrow 明天
    \Carbon\Carbon::tomorrow('Asia/shanghai');       // 2019-02-14 00:00:00
    // yesterday 昨天
    \Carbon\Carbon::yesterday('Asia/shanghai');       // 2019-02-12 00:00:00
    
  • 字符串类型输出
  • // toDateTimeString()     format: Y-m-d H:i:s
    echo \Carbon\Carbon::now('Asia/shanghai')->toDateTimeString();  // 2019-02-13 11:19:52
    // toDateString()         format: Y-m-d
    echo \Carbon\Carbon::now('Asia/shanghai')->toDateString();      // 2019-02-13
    // format(string)          自定义格式
    echo \Carbon\Carbon::parse('2 days ago', 'UTC')->format('Y-m-d H:i');   // 2019-02-11 03:43
    
  • 解析已有时间
  • // Carbon 对象
    \Carbon\Carbon::parse('2019-01-01 01:01:01', 'UTC');  // 2019-01-01 01:01:01
    \Carbon\Carbon::parse('2019-01-01');       // 2019-01-01 00:00:00
    \Carbon\Carbon::parse('today');            // 2019-02-13 00:00:00
    \Carbon\Carbon::parse('tomorrow');         // 2019-02-14 00:00:00
    \Carbon\Carbon::parse('yesterday');        // 2019-02-12 00:00:00
    \Carbon\Carbon::parse('2 days ago') ;       // 2天前  2019-02-11 03:33:30
    \Carbon\Carbon::parse('+3 days');           // 3天后  2019-02-16 03:33:30
    \Carbon\Carbon::parse('+2 weeks');          // 2周后 2019-02-27 03:33:30
    \Carbon\Carbon::parse('+4 months');         // 4个月后 2019-06-13 03:33:30
    \Carbon\Carbon::parse('-1 year');           // 一年前 2018-02-13 03:33:30
    \Carbon\Carbon::parse('next wednesday');    // 下星期三 2019-02-20 00:00:00
    \Carbon\Carbon::parse('last friday');       // 上星期五 2019-02-08 00:00:00
    
    // 当前时间 2019-02-13 11:47:41
    \Carbon\Carbon::createFromDate(2018,12,12, 'Asia/shanghai');  // 2018-12-12 11:47:41
    // 2018-12-12 12:12:12
    \Carbon\Carbon::create(2018,12,12, 12, 12,12,'Asia/shanghai'); // 2018-12-12 12:12:12
    // 当前时间 2019-02-13 11:52:03
    // 2018-12-12 11:52:03
    \Carbon\Carbon::createFromDate(2018,12,12, 'Asia/shanghai');
    // 2019-12-12 11:52:03
    \Carbon\Carbon::createFromDate(null,12,12, 'Asia/shanghai');
    // 2019-10-13 11:52:03
    \Carbon\Carbon::createFromDate(null,10,null, 'Asia/shanghai');
    
  • 日期操作 addXxx()
  • // 2019-02-13 13:21:14
    \Carbon\Carbon::now('Asia/shanghai');
    // 后一天
    \Carbon\Carbon::now('Asia/shanghai')->addDay();   // 2019-02-14 13:21:14
    // 后5天
    \Carbon\Carbon::now('Asia/shanghai')->addDays(5); // 2019-02-18 13:21:14
    // 一周后
    \Carbon\Carbon::now('Asia/shanghai')->addWeek();  // 2019-02-20 13:21:14
    // 三周后
    \Carbon\Carbon::now('Asia/shanghai')->addWeeks(3); // 2019-03-06 13:21:14
    // 一小时后
    \Carbon\Carbon::now('Asia/shanghai')->addHour();  // 2019-02-13 14:21:14
    // 3小时候
    \Carbon\Carbon::now('Asia/shanghai')->addHours(3); // 2019-02-13 16:21:14
    // 一分钟后
    \Carbon\Carbon::now('Asia/shanghai')->addMinute();    // 2019-02-13 13:22:14
    // 5分钟后
    \Carbon\Carbon::now('Asia/shanghai')->addMinutes(5);  //  2019-02-13 13:26:14
    // modify 修改当前时间
    // 2天前
    \Carbon\Carbon::now('Asia/shanghai')->modify('-2 days');  // 2019-02-11 13:21:14
    // 2天后
    \Carbon\Carbon::now('Asia/shanghai')->modify('+2 days');  // 2019-02-15 13:21:14
    
  • 日期操作 subXxx()
  • $one = \Carbon\Carbon::parse('2019-12-12 12:12:00');
    $tow = \Carbon\Carbon::parse('2019-12-12 00:00:00');
    // 减去一周 7 天
    dump( $one->subWeek() );          // 2019-12-05 12:12:00
    // 减去两周 14 天
    dump( $one->subWeeks(2) );        // 2019-11-21 12:12:00
    // 减去一个工作日  星期一到星期五 工作日
    dump( $one->subWeekday() );       // 2019-11-20 12:12:00
    // 减去3个工作日
    dump( $one->subWeekdays(3) );     // 2019-11-15 12:12:00
    // 减去一小时
    dump( $one->subHour() );                // 2019-11-15 11:12:00
    // 减去四小时
    dump( $one->subHours(4) );        // 2019-11-15 07:12:00
    // 减去一分钟
    dump( $one->subMinute() );              // 2019-11-15 07:11:00
    // 减去五分钟
    dump( $one->subMinutes(5) );      // 2019-11-15 07:06:00
    // 减去一秒
    dump( $one->subSecond() );              // 2019-11-15 07:05:59
    // 减去23秒
    dump( $one->subSeconds(23) );     // 2019-11-15 07:05:36
    // 减去一天
    dump( $one->subDay() );                 // 2019-11-14 07:05:36
    // 减去三天
    dump( $one->subDays(2) );         // 2019-11-12 07:05:36
    // 减去一个月
    dump( $one->subMonth() );               // 2019-10-12 07:05:36
    // 减去两个月
    dump( $one->subMonths(2) );       // 2019-08-12 07:05:36
    // 减去一年
    dump( $one->subYear() );                // 2018-08-12 07:05:36
    // 减去两年
    dump( $one->subYears(2) );        // 2016-08-12 07:05:36
    // 减去一个季度 3个月
    dump( $one->subQuarter() );             // 2016-05-12 07:05:36
    // 减去两个季度 6个月
    dump( $one->subQuarters(2) );     // 2015-11-12 07:05:36
    // 减去3个季度
    dump( $one->subQuarters(3) );     // 2015-02-12 07:05:36
    dump( $one->subRealHour() );            // 2015-02-12 06:05:36
    dump( $one->subRealHours(2) );    // 2015-02-12 04:05:36
    // 减去一个世纪 100 年
    dump( $one->subCentury() );             // 1915-02-12 04:05:36
    // 减去一个世纪
    dump( $one->subCenturies(1) );    // 1815-02-12 04:05:36
    
  • 获取当前时区
  • echo \Carbon\Carbon::now('Asia/shanghai')->tzName;    // Asia/shanghai
    
  • Carbon 时区比较
  • $one = \Carbon\Carbon::parse('2019-12-12 12:12:00');
    $tow = \Carbon\Carbon::parse('2019-12-12 00:00:00');
    // eq 判断两个日期是否相等
    $one->eq($tow);  // false
    // ne 判断两个日期否相等
    $one->ne($tow);  // true
    // gt 判断第一个日期是否比第二个日期大
    $one->gt($tow);  // true
    // lt 判断第一个日期是否比第二个日期小
    $one->lt($tow);  // false
    // gte 判断第一个日期是否大于等于第二个日期
    $one->gte($tow); // true
    // lte 判断第一个日期是否小于等于第二个日期
    $one->lte($tow); // false
    // min 返回最小日期
    $one->min($tow);  // 2019-12-12 00:00:00
    // max 返回最大日期
    $one->max($tow);  // 2019-12-12 12:12:00
    
  • betewwn 判断日期是否在两个日期之间
  • $one = \Carbon\Carbon::parse('2019-12-12 12:12:00');
    $tow = \Carbon\Carbon::parse('2019-12-12 00:00:00');
    // true
     \Carbon\Carbon::parse('2019-12-12 08:00:00')->between($one, $tow);
    // false
    \Carbon\Carbon::parse('2019-12-12 14:00:00')->between($one, $tow);
    // true
    \Carbon\Carbon::parse('2019-12-12 12:12:00')->between($one, $tow);
    // 第三个参数判断边界是否相等  默认true 默认边界可以相等
    \Carbon\Carbon::parse('2019-12-12 12:12:00')->between($one, $tow, false);  // false
    
    $one = \Carbon\Carbon::parse('2019-12-12 12:12:00');
    $tow = \Carbon\Carbon::parse('2019-12-12 00:00:00');
    // isWeekday() 判断当前日期是否是工作日
    $one->isWeekday();  // true
    // isWeekend() 判断当前日期是否是周末
    $one->isWeekend();  // false
    // isYesterday() 判断时间是否是昨天
    $tow->isYesterday(); // false
    // isToday() 判断日期是否是今天
    $tow->isToday(); // false
    // isTomorrow() 判断日期是否是明天
    $tow->isTomorrow(); // false
    // isFuture() 判断日期是否是当前日期之后(gt()函数比较)
    $tow->isFuture(); //true
    // isPast() 判断日期是否是当前日期之前(lt()函数比较)
    $tow->isPast();  // false
    // isLeapYear() 判断年份是否为闰年 return $this->format('L') === '1';
    $tow->isLeapYear(); // false
    // isNextWeek() 判断时间是否在下周内
    // isLastWeek() 判断时间是否在上周内
    // isNextQuarter() 判断时间是否在下个季度内
    // isLastQuarter() 判断时间是否在上个季度内
    // isNextMonth() 判断时间是否在下一个月
    // isLastMonth() 判断时间是否在上一个月
    // isNextYear() 判断日期是否在下一年内
    // isLastYear() 判断时间是否在昨年内
    // isLongYear() 判断时间是否是长年 长年53周
    // 判断 Y-m-d 日期对比
    // isSameDay($date = null) 检查传入日期是否与实例日完全相同; return $this->isSameAs('Y-m-d', $date);
    // isSunday() , isMonday() , isTuesday() , isWednesday() , isThursday() , isFriday() , isSaturday()
    // isBirthday($date = null) 判断当前是否是否是生日 return $this->isSameAs('md', $date);
    // isMidday() 判断时间是否是正午 return $this->format('G:i:s') === static::$midDayAt.':00:00'; static::$midDayAt = 12;
    // isMidnight() 判断时间是否是白天 或 午夜的开始
    
  • 时间显示 diffForHumans()
  • // 根据本地语言显示
    //     * @param bool        $absolute removes time difference modifiers ago, after, etc
    //     * @param bool        $short   显示时间单位的短格式
    //     * @param int         $parts    displays number of parts in the interval
    // diffForHumans($other = null, $absolute = false, $short = false, $parts = 1)
    $one = \Carbon\Carbon::parse('2019-12-12 12:12:00');
    dump( $one->subDays(6)->diffForHumans() );  // 9 months from now
    dump( \Carbon\Carbon::now()->diffForHumans(\Carbon\Carbon::now()->subYear()) ); // 1 year after
    复制代码
    分类:
    后端
    标签: