Работа с датой и временем в Laravel и PHP с помощью Carbon

Ромчик
0

laravel

 

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

 

 

  • Работа с часовыми поясами
  • Получение текущего времени
  • Прибавление и вычитания даты (например, +2 дня или -3 недели)
  • И др.

Интересно? Тогда приступаем.

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

Подключение Carbon

Так, как я рассматриваю работу со временем в Laravel с помощью Carbon. А Carbon по умолчанию идет в составе Laravel. Поэтому для начала его использования нам необходимо просто импортировать Carbon из пространства имен Carbon:


<?php

use Carbon\Carbon;

Получение даты и времени

Получение текущей даты и времени


$date = Carbon::now();

Давайте посмотрим, что содержится в $date с помощью dd

Текущая дата и время

Есть и второй способ получения текущей даты:


$current = new Carbon();

Получение текущей даты


$date = Carbon::today();

Посмотрим результат:

Текущая датаПолучение завтрашней даты.


$date = Carbon::tomorrow();

Получение специфичной даты.

Например, мы хотим получить последнюю пятницу в этом месяце.


$date = Carbon::now();

$lastFriday = new Carbon('last friday of '.$date);

Давайте посмотрим результат:

Получение последней пятницы текущего месяца, используя Carbon

Создание даты с четким контролем

Также мы можем создать дату из определенного количества аргументов:


Carbon::createFromDate($year, $month, $day, $tz);

Или время:


Carbon::createFromTime($hour, $minute, $second, $tz);

Или время и дату:


Carbon::create($year, $month, $day, $hour, $minute, $second, $tz);

И один маленький, но главный нюанс, если один из этих параметров передать как null, то будет подставлено текущее значение.

Манипулирование датой / временем

Carbon также позволяет нам легко манипулировать с датой и временем.

Добавляем 3 дня к текущей дате.


$current = Carbon::now();

$date = Carbon::now()->addDays(3);

Давайте посмотрим результат. В начале я выведу $current, а затем $date

Добавление нескольких дней к дате, испоьзуя CarbonДобавляем один день


$date = Carbon::now()->addDay();

Вычитаем один день


$date = Carbon::now()->subDay();

Вычитаем три дня


$date = Carbon::now()->subDays(3);

Добавляем 5 лет к текущей дате


$date = Carbon::now()->addYears(5);

Добавляем один год


$date = Carbon::now()->addYear();

Вычитаем один год


$date = Carbon::now()->subYear();

Вычитаем пять лет


$date = Carbon::now()->subYears(5);

Есть аналогичные функции с прибавлением и вычитанием месяцев


$date = Carbon::now()->addMonths(2);

$date = Carbon::now()->addMonth();

$date = Carbon::now()->subMonths(2);

$date = Carbon::now()->subMonth();

Аналогично с неделями (прибавление и вычитание недель)


$date = Carbon::now()->addWeeks(3);

$date = Carbon::now()->addWeek();

$date = Carbon::now()->subWeeks(3);

$date = Carbon::now()->subWeek(3);

Есть также методы для работы с часами, минутами и секундами.

Относительное время

Carbon содержит очень полезные и мощные методы отображения разницы времени. Например:


$current = Carbon::now();

$date = Carbon::now();

$date->addHours(10);

echo $current->diffInHours($date, false);

Выведет 10. А следующий код выведет -10.


$current = Carbon::now();

$date = Carbon::now();

$date->addHours(10);

echo $date ->diffInHours($current, false);

Также, есть методы для отображения разницы в минутах и днях

  • diffInMinutes
  • diffInDays

Существуют также специальные функции фильтрации diffInDaysFiltered (), diffInHoursFiltered () и diffFiltered (), чтобы помочь вам отфильтровать разницу по дням, часам или пользовательскому интервалу. Например, чтобы подсчитать выходные дни между двумя экземплярами. О которых вы можете прочитать в официальной документации.

Заключение.

Пакет Carbon позволяет нам существенно упростить и ускорить работу со временем и датами. Пакет обладает широкими возможностями получения и манипулирования датами.

 

Понравилась статья? Поделись с друзьями.
  • Add to favorites
  • Добавить ВКонтакте заметку об этой странице
  • Twitter
  • Facebook
  • Мой Мир
  • LiveJournal
  • Одноклассники
  • Блог Я.ру
  • MySpace
  • FriendFeed
  • В закладки Google
  • Google Buzz
  • Яндекс.Закладки
  • Reddit
  • StumbleUpon
  • Technorati
  • del.icio.us
  • БобрДобр
  • LinkedIn
  • Memori.ru
  • Сто закладок
  • Blogger
©2012-2017 По всем вопросам обращайтесь через форму обратной связи

Яндекс.Метрика