Carbon — простой и функциональный инструмент PHP для работы с датой и временем

Carbon - простой и функциональный инструмент PHP для работы с датой и временем

От автора: так сложилось, что дата и время повсеместно используются практически на каждом сайте в интернете, причем не просто для отображения на экран, дата и время, как правило, входят в состав различных логических преобразований для формирования контента. Поэтому в данном уроке мы с Вами рассмотрим замечательный инструмент по работе с вышеуказанной информацией под названием Carbon.

скачать исходники

Как Вы знаете, в структуре языка PHP, есть довольно функциональный класс, для работы с датой и временем, под названием DateTime. Который отлично справляется с типовыми задачами, но порой его функционала все же не достаточно. То есть хотелось бы иметь в распоряжении больше методов, которые добавляют удобства и легкости в работе с датой и временем. Как раз эту проблему и решает расширение под названием Carbon. По сути – это обычный класс, который расширяет функционал вышеуказанного класса, добавляя к нему множество интересных методов по созданию и преобразованию даты и времени. Официальный сайт, указанного инструмента Вы найдет по ссылке.

Для установки библиотеки с использованием инструмента Composer, достаточно выполнить команду:

Практический курс по созданию веб-приложения на PHP & MySQL с нуля!

Изучите курс и создайте ваше первое приложение на PHP всего за 3 дня!

Изучить курс
composer require nesbot/carbon

И, конечно же, подключить сгенерированный файл.

require 'vendor/autoload.php';

Обратите внимание, что класс библиотеки, описан в собственном пространстве имен, поэтому желательно его так же подключить к Вашему проекту.

use Carbon\Carbon; 

На этом, установка завершена, и Вы можете использовать ресурсы библиотеки. Собственно, в структуре Carbon можно выделить несколько групп методов по работе, с датой и временем: методы по созданию объекта с требуемой датой, методы по отображению даты на экран, методы сравнения и методы по изменению даты.

Методы по созданию объекта с требуемой датой

Для создания объекта, можно воспользоваться, достаточно стандартным выражением:

$carbon = new Carbon(); 

Таким образом, будет создан объект, содержащий текущую дату и время. Так же можно воспользоваться, одним из трех методов, название которых само по себе говорит, какая дата будет использоваться.

//Сегодня
$carbon = Carbon::today();
//Завтра
$carbon = Carbon::tomorrow();
//Вчера
$carbon = Carbon::yesterday();

Но при этом, время будет выбрано как 00:00:00. Далее, методы по формированию объекта Carbon используя определенную дату. По сути каждый из них, принимает в качестве аргументов, определенные части даты или времени.

//Из определенной даты
$carbon =  Carbon::createFromDate(2013, 12, 25);
//Из определенного времени
$carbon =  Carbon::createFromTime(12, 05, 30);
//Из строки времени
$carbon =  Carbon::createFromTimeString("12:23:05");
//Из определенной даты в виде частей
$carbon =  Carbon::create(2013, 05, 10, 12, 30, 25);
//Из определенного формата
$carbon =  Carbon::createFromFormat('Y-m-d H', '1995-05-21 22');

Методы по отображению даты и времени на экран

В самом простейшем случае для отображения даты и времени, можно воспользоваться методом toDateTimeString (), объекта Carbon или просто вывести на экран объект.

echo $carbon->toDateTimeString(); 
echo $carbon; 

Для отображения информации в требуемом формате, можно использовать следующие методы:

echo $carbon->toDateString();
//Форматированный вывод - формат определяется первым аргуметом
echo $carbon->format('Y-m-d\TH:i:s.uP T');
 
echo $dt->toFormattedDateString(); 
echo $dt->toTimeString(); 
echo $dt->toDayDateTimeString(); 

Для отображения даты в интересующей локализации, необходимо ее указать и затем использовать метод formatLocalized(). При этом следует учесть, что кириллические символы, будут возвращены в кодировке cp-1251, а значит, если используется общая кодировка UTF8, потребуется конвертация.

setlocale(LC_TIME, 'Russian');
echo iconv("windows-1251","utf-8", $carbon->formatLocalized('%A %d %B %Y'));

Для отображения, определенной части даты, так же можно воспользоваться одним из представленных свойств, название которых само за себя говорит о их назначении.

var_dump($dt->year); 
var_dump($dt->month); 
var_dump($dt->day); 
var_dump($dt->hour); 
var_dump($dt->minute); 
var_dump($dt->second); 
var_dump($dt->micro); 
var_dump($dt->dayOfWeek); 
var_dump($dt->dayOfWeekIso); 
var_dump($dt->dayOfYear); 
var_dump($dt->weekNumberInMonth); 
var_dump($dt->weekOfMonth); 
var_dump($dt->weekOfYear); 
var_dump($dt->daysInMonth); 
var_dump($dt->timestamp);

При этом, если это свойства, то их значения Вы можете изменить, тем самым изменив значение даты всего объекта в целом.

Методы сравнения дат

Помимо этого, очень часто необходимо сравнивать даты между собой и для этого есть отдельная группа методов.

//Равенство
var_dump($first->eq($second)); 
//Не Равенство
var_dump($first->ne($second));
//Больше
var_dump($first->gt($second));
//Больше равно
var_dump($first->gte($second));
//Меньше
var_dump($first->lt($second));
//Меньше равно
var_dump($first->lte($second));
//Проверка входит ли дата в диапазон
var_dump(Carbon::create(2012, 9, 5, 3)->between($first, $second));

Методы по преобразованию даты и времени

Ну, и наконец группа методов по изменению даты и времени. Хотя мы уже знаем с Вами как изменить определенную часть времени — для этого достаточно изменить значение соответствующего свойства, но все же методы добавляют некую гибкость к библиотеке в целом.

//Столетия
echo $carbon->addCenturies(5); 
echo $carbon->addCentury(); 
echo $carbon->subCentury(); 
echo $carbon->subCenturies(5); 
//Года
echo $carbon->addYears(5); 
echo $carbon->addYear(); 
echo $carbon->subYear(); 
echo $carbon->subYears(5); 
//Четверти
echo $carbon->addQuarters(2); 
echo $carbon->addQuarter(); 
echo $carbon->subQuarter(); 
echo $carbon->subQuarters(2); 
//Месяцы
echo $carbon->addMonths(60); 
echo $carbon->addMonth(); 
echo $carbon->subMonth(); 
echo $carbon->subMonths(60); 
//Дни
echo $carbon->addDays(29); 
echo $carbon->addDay(); 
echo $carbon->subDay(); 
echo $carbon->subDays(29); 
//Дни недели
echo $carbon->addWeekdays(4); 
echo $carbon->addWeekday(); 
echo $carbon->subWeekday(); 
echo $carbon->subWeekdays(4); 
//Недели
echo $carbon->addWeeks(3); 
echo $carbon->addWeek(); 
echo $carbon->subWeek(); 
echo $carbon->subWeeks(3); 
//Часы
echo $carbon->addHours(24); 
echo $carbon->addHour(); 
echo $carbon->subHour(); 
echo $carbon->subHours(24); 
//Минуты
echo $carbon->addMinutes(61); 
echo $carbon->addMinute(); 
echo $carbon->subMinute(); 
echo $carbon->subMinutes(61); 
//Секунды
echo $carbon->addSeconds(61); 
echo $carbon->addSecond(); 
echo $carbon->subSecond(); 
echo $carbon->subSeconds(61);

Обратите внимание, что методы, в имени которых присутствует префикс add, добавляют определенную часть даты. А методы с префиксом sub, наоборот – вычитают.

Собственно на этом данный урок завершён. В текущей статье, представлены наиболее часто используемые методы, более широко, тема инструмента Carbon раскрыта в видео версии урока. Всего Вам доброго и удачного кодирования!!!

Практический курс по созданию веб-приложения на PHP & MySQL с нуля!

Изучите курс и создайте ваше первое приложение на PHP всего за 3 дня!

Изучить курс

Курс по программированию на языке PHP

Изучите PHP с нуля до результата!

Смотреть курс

Метки:

Похожие статьи:

Комментарии Вконтакте:

Комментарии Facebook:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Я не робот.

Spam Protection by WP-SpamFree