Date and Time
PHP有一个名为DateTime的类,可以帮助您读取、写入、比较或计算日期和时间。除了DATETIME之外,PHP中还有许多与日期和时间相关的函数,但它为大多数常见用途提供了良好的面向对象接口。它可以处理时区,但这不在这个简短的介绍范围之内。
要开始使用 DateTime ,请使用 createFromFormat() 工厂方法将原始日期和时间 字符串 转换为对象,或者执行新的 DateTime 以获取当前日期和时间。使用 format() 方法将日期时间转换回用于输出的字符串。
format('Y-m-d') . "\n";
使用 DateInterval 类可以使用 DateTime 进行计算。 DateTime 有像 add() 和 sub() 这样的方法,它们以 DateInterval 为参数。不要编写期望每天都有相同秒数的代码,夏令时和时区更改都会打破这一假设。改为使用日期间隔。要计算日期差异,请使用 diff() 方法。它将返回新的 DateInterval ,非常容易显示。
add(new DateInterval('P1M6D'));
$diff = $end->diff($start);
echo 'Difference: ' . $diff->format('%m month, %d days (total: %a days)') . "\n";
// 差值: 1 个月, 6 天 (总共: 37 天)
对于 DateTime 对象,您可以使用标准比较:
最后一个演示 DatePeriod 类的示例。它用于迭代重复发生的事件。它可以接受两个 DateTime 对象, Start 和 End ,以及返回这两个对象之间所有事件的间隔。
foreach ($periodIterator as $date) {
// 输出周期内的每个日期
echo $date->format('Y-m-d') . ' ';
}
一个流行的PHP API扩展是 Carbon 。它继承了 DateTime 类中的所有内容,因此涉及的代码更改最少,但额外的功能包括本地化支持、添加、减去和格式化 DateTime 对象的进一步方法,以及通过模拟您选择的日期和时间来测试代码的方法。
Carbon 提供了一些很好的功能来处理 PHP 中的日期,特别是诸如:
- 处理时区
- 轻松获取当前时间
- 将 datetime 转换成可读的内容
- 将英语短语解析成 datetime (first day of January 2016)
- 日期的加减 (+ 2 weeks, -6 months)
- 处理日期的语义方法
所有的这些都带来了一个非常有用的包,使得这些在 PHP 中处理时间非常容易。
// 获取当前时间 - 2015-12-19 10:10:54
$ current = Carbon::now();
$current = new Carbon();
// 获取今天 - 2015-12-19 00:00:00
$today = Carbon::today();
// 获取昨天 - 2015-12-18 00:00:00
$ yesterday = Carbon::yesterday();
// 获取明天 - 2015-12-20 00:00:00
$ tomorrow = Carbon::tomorrow();
// 解析特定字符串 - 2016-01-01 00:00:00
$newYear = new Carbon('first day of January 2016');
// 设定一个特定的时区 - 2016-01-01 00:00:00
$newYearPST = new Carbon('first day of January 2016', 'America\Pacific');
Carbon 能做的远远不止这些。请务必查看 Carbon 官方文档。希望这能帮助你在 PHP 中更容易的使用日期 / 时间并加快开发效率!
相关文章
本站已关闭游客评论,请登录或者注册后再评论吧~