1. 程式人生 > 其它 >PHP Carbon 日期處理

PHP Carbon 日期處理

1. composer安裝Carbon

composer require nesbot/carbon

2. 使用示例

<?php
use Carbon\Carbon;

echo Carbon::now();                   //當前時間  2021-10-09 16:29:15
echo Carbon::now()->toDateTimeString();  //當前時間  2021-10-09 16:29:15

echo Carbon::today();                            //今天      2021-10-09 00:00:00
echo Carbon::parse('today')->toDateTimeString(); //今天的日期 2021-10-09 00:00:00
echo Carbon::now()->toDateString();              //今天      2021-10-09

echo Carbon::tomorrow();            // 明天 2021-10-10 00:00:00 
echo Carbon::yesterday();           // 昨天 2021-10-08 00:00:00 

echo Carbon::createFromDate(2021, 05, 21);     //建立指定日期 2021-05-21 16:29:15
echo Carbon::create(2021, 05, 21, 20, 00, 00); //建立指定日期 2021-05-21 20:00:00

echo Carbon::now()->addHours(1);               // 1小時後同一時間 2021-10-09 17:29:15
echo Carbon::now()->subHours(2);                 // 2小時前同一時間 2021-10-09 14:29:15
echo Carbon::now()->addHours(2)->addMinutes(1);  // 2小時後+1分鐘  2021-10-09 18:30:15
echo Carbon::now()->addDays(1);                 // 1天后同一時間  2021-10-10 16:29:15
echo Carbon::now()->modify('+1 days');           // 1天后同一時間  2021-10-10 16:29:15
echo Carbon::now()->modify('-1 days');           // 1天前同一時間  2021-10-08 16:29:15
echo Carbon::now()->addWeeks(1);                 // 1周後同一時間  2021-10-16 16:29:15
echo Carbon::parse('2021-10-09 +10 days')->toDateTimeString() . PHP_EOL;   // 10天后 2021-10-19 00:00:00
$day = new Carbon();
echo $day;                    // 2021-10-09 16:29:15
echo $day->toDateString();    // 2021-10-09
echo $day->format('Y');       // 2021
echo $day->format('m');       // 10
echo $day->format('d');       // 09
echo $day->dayOfWeek;         // 6(周6)
echo $day->format('m') . '月' . $day->format('d') . '日';   //10月09日

日期比較between():判斷一個日期是否在兩個日期之間(第三個可選引數指定比較是否可以相等,預設為 true)

$start = Carbon::create(2021, 05, 20, 5);   // 2021-05-20 05:00:00
$end   = Carbon::create(2021, 05, 20, 10);    // 2021-05-20 10:00:00
var_dump(Carbon::create(2021, 05, 20, 07)->between($start, $end));         // bool(true)
var_dump(Carbon::create(2021, 05, 20, 10)->between($start, $end));         // bool(true)
var_dump(Carbon::create(2021, 05, 20, 10)->between($start, $end, false));  // bool(false)

計算指定日期的差值:

diffInYears(年);diffInMonths(月);diffInDays(日);

diffInHours(時);diffInMinutes(分);diffInSeconds(秒);

$taday     = Carbon::now();                // 2021-10-09 16:29:15
$yesterday = Carbon::parse('yesterday');   // 2021-10-08 00:00:00
echo  $yesterday->diffInYears($taday, false);  //返回為正負數 1
echo  $taday->diffInDays($yesterday, false);   // -1
echo  $taday->diffInDays($yesterday, true);    // 1