carbon
Carbon 是php的日期處理類庫(A simple PHP API extension for DateTime.) 關于在Laravel中日期時間處理包Carbon的簡單使用,需要的朋友可以參考下。
安裝
可以通過composer來安裝Carbon,由于 Laravel 項目已預設安裝了此包,是以不需要再次執行上面的指令。
composer require nesbot/carbon
擷取目前時間
如果不指定時區,他會使用php.ini中時區配置
echo Carbon::now(); // 2019-01-01 10:00:00
echo Carbon::today(); // 今天日期
echo Carbon::tomorrow(); // 明天
echo Carbon::yesterday(); // 昨天
擷取字串類型日期
預設傳回一個對象,可以直接echo的原因是因為有 __toString 魔術方法
echo Carbon::now()->toDateString(); //2016-10-14
echo Carbon::now()->toDateTimeString(); //2016-10-14 20:22:50
日期解析 (支援語義解析 用法類似 strtotime)
個人覺着這是一個比較實用的功能
echo Carbon::parse('today')->toDateTimeString(); //擷取今天的日期
echo Carbon::parse('2019-01-03 +10 days')->toDateTimeString().PHP_EOL;
建構日期
使用單獨的年月日時分秒參數建構日期
$year = '2015';
$month = '04';
$day = '12';
echo Carbon::createFromDate($year, $month, $day); //2015-04-12 20:55:59
$hour = '02';
$minute = '15':
$second = '30';
echo Carbon::create($year, $month, $day, $hour, $minute, $second); //2015-04-12 02:15:30
echo Carbon::createFromDate(null, 12, 25); // 年預設為目前年份
日期操作
modify方法可以傳遞算數運算符 + -
echo Carbon::now()->addDays(25); //2016-11-09 14:00:01
echo Carbon::now()->addWeeks(3); //2016-11-05 14:00:01
echo Carbon::now()->addHours(25); //2016-10-16 15:00:01
echo Carbon::now()->subHours(2); //2016-10-15 12:00:01
echo Carbon::now()->addHours(2)->addMinutes(12); //2016-10-15 16:12:01
echo Carbon::now()->modify('+15 days'); //2016-10-30 14:00:01
echo Carbon::now()->modify('-2 days'); //2016-10-13 14:00:01
日期比較
要判斷一個日期是否介于兩個日期之間,可以使用 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)
計算指定日期的內插補點
diffInDays-天; diffInHours-小時
$taday = Carbon::parse('today');
$yesterday = Carbon::parse('yesterday');
echo $yesterday->diffInDays($taday,false); //傳回為正負數 1
echo $taday->diffInDays($yesterday,false); // -1