在编写php应用时经常需要处理日期和时间,carbon继承自 php datetime 类的 api 扩展,它使得处理日期和时间更加简单,本文主要给大家分享了laravel中七个非常有用但很少人知道的carbon方法,需要的朋友可以参考下。
前言
大家应该都知道,我们在很多时候使用 carbon 来处理日期和时间,对吗?但是又有多少人完整的阅读过文档了解它有那些方法呢?除了众所周知的 now() 和 format() 方法,carbon 还有很多其他有用的方法。
下面我们一起来看看吧。
1. isx: true/false
有很多方法来判断 carbon 对象是否是今天、周末、闰年等等,下面这些是官方文档列出来的:
<?php
$dt->isweekday();
$dt->isweekend();
$dt->isyesterday();
$dt->istoday();
$dt->istomorrow();
$dt->isfuture();
$dt->ispast();
$dt->isleapyear();
$dt->issameday(carbon::now());
2. isbirthday
除了上面的列表,carbon 还有一个方法来判断日期是否是某个人的生日。除了单开校验月和日外,你还可以这么做:
$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 和 endofx 列表
下面是 startofx 系列和 endofx 系列:
$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
三个简单却非常有用的方法,不需要调用 now(),然后替换掉时分秒,然后增加或者减去天数:
$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 + 本地化
你可能用过这个叫做 diffforhumans() 的方法 – 它会以一个便于人们阅读的方法返回两个日期之间的不同:
echo carbon::now()->subdays(5)->diffforhumans(); // 5 days ago
但是你知道它也可以本地化吗?只需要改变地点即可,如汉语:
carbon::setlocale('zh');
echo carbon::now()->addyear()->diffforhumans(); // 一年前
6. 改变 now() 为任意你想要的时间
$knowndate = carbon::create(2001, 5, 21, 12); // 创建测试日期
carbon::settestnow($knowndate); // set the mock
echo carbon::now(); // 2001-05-21 12:00:00
7. 星期常量
可以通过下面的常量来代替一周中的第几天:
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)
上面提到的这些有用的方法你都了解吗?可以在留言种列出你觉得有用的方法。
相关推荐:
laravel中日期时间处理包carbon
laravel中如何使用日期时间处理包carbon的实例
php如何利用日期时间处理器carbon实现人性化显示时间的实例
以上就是七个非常有用的laravel中carbon方法的详细内容。