Preface
Everyone should know that we use Carbon a lot of times to deal with dates and times, right? But how many people have read the document in full and understand what methods does it have? Besides the well-known now() and format() methods, Carbon has many other useful methods.
Let’s take a look together below.
1. isX: True/False
There are many ways to judge whether Carbon objects are today, weekends, leap years, etc. The following are listed in the official documentation:
<?php $dt->isWeekday(); $dt->isWeekend(); $dt->isYesterday(); $dt->isToday(); $dt->isTomorrow(); $dt->isFuture(); $dt->isPast(); $dt->isLeapYear(); $dt->isSameDay(Carbon::now());
2. isBirthday
In addition to the list above, Carbon also has a way to determine whether a date is someone’s birthday. In addition to single check month and day, you can also do this:
$born = Carbon::createFromDate(1987, 4, 23); $noCake = Carbon::createFromDate(2014, 9, 26); $yesCake = Carbon::createFromDate(2014, 4, 23); var_dump($born->isBirthday($noCake)); // bool(false) var_dump($born->isBirthday($yesCake));
3. StartOfX and EndOfX lists
Here are the startOfX series and the endOfX series:
$dt = Carbon::create(2012, 1, 31, 12, 0, 0); echo $dt->startOfDay(); // 2012-01-31 00:00:00 echo $dt->endOfDay(); // 2012-01-31 23:59:59 echo $dt->startOfMonth(); // 2012-01-01 00:00:00 echo $dt->endOfMonth(); // 2012-01-31 23:59:59 echo $dt->startOfYear(); // 2012-01-01 00:00:00 echo $dt->endOfYear(); // 2012-12-31 23:59:59 echo $dt->startOfDecade(); // 2010-01-01 00:00:00 echo $dt->endOfDecade(); // 2019-12-31 23:59:59 echo $dt->startOfCentury(); // 2000-01-01 00:00:00 echo $dt->endOfCentury(); // 2099-12-31 23:59:59 echo $dt->startOfWeek(); // 2012-01-30 00:00:00 echo $dt->endOfWeek(); // 2012-02-05 23:59:59
4. Today, Tomorrow, Yesterday
Three simple but very useful methods do not require calling now(), then replacing the hours, minutes and seconds, and then increasing or subtracting the number of days:
$today = Carbon::today(); // assuming 2016-06-24 echo $today; // 2016-06-24 00:00:00 $tomorrow = Carbon::tomorrow(); echo $tomorrow; // 2016-06-25 00:00:00 $yesterday = Carbon::yesterday(); echo $yesterday; // 2016-06-23 00:00:00
5. DiffForHumans + Localization
You may have used this method called diffForHumans() - it returns the difference between two dates in a way that is easy for people to read:
echo Carbon::now()->subDays(5)->diffForHumans(); // 5 days ago
But did you know it can be localized as well? Just change the location, such as in Chinese:
Carbon::setLocale('zh'); echo Carbon::now()->addYear()->diffForHumans(); // A year ago
6. Change now() to any time you want
$knownDate = Carbon::create(2001, 5, 21, 12); // Create a test dateCarbon::setTestNow($knownDate); // set the mock echo Carbon::now(); // 2001-05-21 12:00:00
7. Weekly constants
The following constants can be used instead of the day of the week:
var_dump(Carbon::SUNDAY); // int(0) var_dump(Carbon::MONDAY); // int(1) var_dump(Carbon::TUESDAY); // int(2) var_dump(Carbon::WEDNESDAY); // int(3) var_dump(Carbon::THURSDAY); // int(4) var_dump(Carbon::FRIDAY); // int(5) var_dump(Carbon::SATURDAY); // int(6)
Do you know all the useful methods mentioned above? You can list the methods you find useful in the message type.
Summarize
The above is the entire content of this article. I hope the content of this article will be of some help to your study or work. If you have any questions, you can leave a message to communicate. Thank you for your support.