在编写 PHP 应用时经常需要处理日期和时间,这篇文章带你了解一下 Carbon – 继承自 PHP DateTime 类的 API 扩展,它使得处理日期和时间更加简单。
1. 通过composer安装
版本环境要求:
1.x is compatible with PHP 5.3+.
2.x version requires PHP 7.1.8+.
composer require nesbot/carbon
{
"require": {
"nesbot/carbon": "^2.16"
}
}
2.使用
<?php
require 'vendor/autoload.php';
use Carbon\Carbon;
printf("Now: %s", Carbon::now());
2.1获取当前时间
echo Carbon::now();
echo Carbon::today();
echo Carbon::tomorrow();
echo Carbon::yesterday();
//today()、tomorrow()、yesterday()等静态函数,它们的时间都是 00:00:00
输出结果
Carbon @1556674336 {#343 ▼
date: 2019-05-01 09:32:16.169639 Asia/Hong_Kong (+08:00)
}
2.2 日期类型转为字符串
如上所述,默认情况下,Carbon 的方法返回的为一个日期时间对象。虽然它是一个对象,但是你却可以直接使用 echo 输出结果,因为有 __toString
魔术方法。但是如果你想把它转为字符串,可以使用 toDateString
或 toDateTimeString
方法:
echo Carbon::now()->toDateString(); //2019-05-01
echo Carbon::now()->toDateTimeString(); //2019-05-01 09:32:16
2.3日期解析
你还可以使用 parse方法解析任何顺序和类型的日期
Carbon::parse($time, $tz)
第一个参数指转换的时间,第二个参数为时区
$time可选的相对修饰符的单词列表是:
+
-
ago
first
next
last
this
today
tomorrow
yesterday
$knownDate = Carbon::create(2001, 5, 21, 12); // create testing date
Carbon::setTestNow($knownDate); // set the mock
echo new Carbon('tomorrow'); // 2001-05-22 00:00:00 ... notice the time !
echo new Carbon('yesterday'); // 2001-05-20 00:00:00
echo new Carbon('next wednesday'); // 2001-05-23 00:00:00
echo new Carbon('last friday')