<?php
use Carbon\Carbon;
$now = Carbon::now();
echo $now;
$today = Carbon::today();
echo $today;
$tomorrow = Carbon::tomorrow('Europe/London');
echo $tomorrow;
$yesterday = Carbon::yesterday();
echo $yesterday;
建立特定日期的時間
<?php
use Carbon\Carbon;
$timezone = 'Asia/Taipei';
Carbon::createFromDate($year, $month, $day, $timezone);
Carbon::createFromTime($hour, $minute, $second, $timezone);
Carbon::create($year, $month, $day, $hour, $minute, $second, $timezone);
Carbon::createFromFormat($format, $time, $tz);
echo Carbon::createFromFormat('Y-m-d H', '1975-05-21 22')->toDateTimeString();
echo Carbon::createFromTimeStamp(-1)->toDateTimeString();
echo Carbon::createFromTimeStamp(-1, 'Europe/London')->toDateTimeString();
echo Carbon::createFromTimeStampUTC(-1)->toDateTimeString();
轉換日期
<?php
use Carbon\Carbon;
$knownDate = Carbon::create(2001, 5, 21, 12);
Carbon::setTestNow($knownDate);
echo new Carbon('tomorrow');
echo new Carbon('yesterday');
echo new Carbon('next wednesday');
echo new Carbon('last friday');
echo new Carbon('this thursday');
取得日期資料
<?php
use Carbon\Carbon;
$dt = Carbon::parse('2012-9-5 23:26:11.123789');
var_dump($dt->year);
var_dump($dt->month);
var_dump($dt->day);
var_dump($dt->hour);
var_dump($dt->minute);
var_dump($dt->second);
var_dump($dt->micro);
var_dump($dt->dayOfWeek);
var_dump($dt->dayOfYear);
var_dump($dt->weekOfMonth);
var_dump($dt->weekOfYear);
var_dump($dt->daysInMonth);
var_dump($dt->timestamp);
var_dump(Carbon::createFromDate(1975, 5, 21)->age);
var_dump($dt->quarter);
var_dump(Carbon::createFromTimestampUTC(0)->offset);
var_dump(Carbon::createFromTimestamp(0)->offset);
var_dump(Carbon::createFromTimestamp(0)->offsetHours);
var_dump(Carbon::createFromDate(2012, 1, 1)->dst);
var_dump(Carbon::createFromDate(2012, 9, 1)->dst);
var_dump(Carbon::now()->local);
var_dump(Carbon::now('America/Vancouver')->local);
var_dump(Carbon::now()->utc);
var_dump(Carbon::now('Europe/London')->utc);
var_dump(Carbon::createFromTimestampUTC(0)->utc);
echo get_class(Carbon::now()->timezone);
echo get_class(Carbon::now()->tz);
echo Carbon::now()->timezoneName;
echo Carbon::now()->tzName;
設定時間資料
<?php
use Carbon\Carbon;
$dt = Carbon::now();
$dt->year = 1975;
$dt->month = 13;
$dt->month = 5;
$dt->day = 21;
$dt->hour = 22;
$dt->minute = 32;
$dt->second = 5;
$dt->timestamp = 169957925;
$dt->timezone = new DateTimeZone('Europe/London');
$dt->timezone = 'Europe/London';
$dt->tz = 'Europe/London';
$dt->year(1975)->month(5)->day(21)->hour(22)->minute(32)->second(5)->toDateTimeString();
$dt->setDate(1975, 5, 21)->setTime(22, 32, 5)->toDateTimeString();
$dt->setDateTime(1975, 5, 21, 22, 32, 5)->toDateTimeString();
$dt->timestamp(169957925)->timezone('Europe/London');
$dt->tz('America/Toronto')->setTimezone('America/Vancouver');
格式化時間資料
<?php
use Carbon\Carbon;
$dt = Carbon::create(1975, 12, 25, 14, 15, 16);
var_dump($dt->toDateTimeString() == $dt);
echo $dt->toDateString();
echo $dt->toFormattedDateString();
echo $dt->toTimeString();
echo $dt->toDateTimeString();
echo $dt->toDayDateTimeString();
echo $dt->format('l jS \\of F Y h:i:s A');
echo $dt->toAtomString();
echo $dt->toCookieString();
echo $dt->toIso8601String();
echo $dt->toRfc822String();
echo $dt->toRfc850String();
echo $dt->toRfc1036String();
echo $dt->toRfc1123String();
echo $dt->toRfc2822String();
echo $dt->toRfc3339String();
echo $dt->toRssString();
echo $dt->toW3cString();
比較時間差異
<?php
use Carbon\Carbon;
echo Carbon::now()->tzName;
$first = Carbon::create(2012, 9, 5, 23, 26, 11);
$second = Carbon::create(2012, 9, 5, 20, 26, 11, 'America/Vancouver');
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(2012, 1, 1, 0, 0, 0);
$second->setDateTime(2012, 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();
echo Carbon::now('America/Vancouver')->diffInSeconds(Carbon::now('Europe/London'));
$dtOttawa = Carbon::createFromDate(2000, 1, 1, 'America/Toronto');
$dtVancouver = Carbon::createFromDate(2000, 1, 1, 'America/Vancouver');
echo $dtOttawa->diffInHours($dtVancouver);
echo $dtOttawa->diffInHours($dtVancouver, false);
echo $dtVancouver->diffInHours($dtOttawa, false);
$dt = Carbon::create(2012, 1, 31, 0);
echo $dt->diffInDays($dt->copy()->addMonth());
echo $dt->diffInDays($dt->copy()->subMonth(), false);
$dt = Carbon::create(2012, 4, 30, 0);
echo $dt->diffInDays($dt->copy()->addMonth());
echo $dt->diffInDays($dt->copy()->addWeek());
$dt = Carbon::create(2012, 1, 1, 0);
echo $dt->diffInMinutes($dt->copy()->addSeconds(59));
echo $dt->diffInMinutes($dt->copy()->addSeconds(60));
echo $dt->diffInMinutes($dt->copy()->addSeconds(119));
echo $dt->diffInMinutes($dt->copy()->addSeconds(120));
echo $dt->addSeconds(120)->secondsSinceMidnight();
時間狀態
<?php
use Carbon\Carbon;
$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);
var_dump($born->isBirthday($noCake));
var_dump($born->isBirthday($yesCake));
時間運算
<?php
use Carbon\Carbon;
$dt = Carbon::create(2012, 1, 31, 0);
echo $dt->toDateTimeString();
echo $dt->addYears(5);
echo $dt->addYear();
echo $dt->subYear();
echo $dt->subYears(5);
echo $dt->addMonths(60);
echo $dt->addMonth();
echo $dt->subMonth();
echo $dt->subMonths(60);
echo $dt->addDays(29);
echo $dt->addDay();
echo $dt->subDay();
echo $dt->subDays(29);
echo $dt->addWeekdays(4);
echo $dt->addWeekday();
echo $dt->subWeekday();
echo $dt->subWeekdays(4);
echo $dt->addWeeks(3);
echo $dt->addWeek();
echo $dt->subWeek();
echo $dt->subWeeks(3);
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);
人類閱讀時間格式
<?php
use Carbon\Carbon;
echo Carbon::now()->subDays(5)->diffForHumans();
echo Carbon::now()->diffForHumans(Carbon::now()->subYear());
$dt = Carbon::createFromDate(2011, 8, 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);
時間常數
<?php
use Carbon\Carbon;
var_dump(Carbon::SUNDAY);
var_dump(Carbon::MONDAY);
var_dump(Carbon::TUESDAY);
var_dump(Carbon::WEDNESDAY);
var_dump(Carbon::THURSDAY);
var_dump(Carbon::FRIDAY);
var_dump(Carbon::SATURDAY);
var_dump(Carbon::YEARS_PER_CENTURY);
var_dump(Carbon::YEARS_PER_DECADE);
var_dump(Carbon::MONTHS_PER_YEAR);
var_dump(Carbon::WEEKS_PER_YEAR);
var_dump(Carbon::DAYS_PER_WEEK);
var_dump(Carbon::HOURS_PER_DAY);
var_dump(Carbon::MINUTES_PER_HOUR);
var_dump(Carbon::SECONDS_PER_MINUTE);
參考資料
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步