Класс lmbDate - инкапсулирует дату (под датой здесь понимается полная дата, то есть число и время) и предоставляет методы для ее работы с ней, в частности модификации и форматирования.
Ниже идут примеры использования различных методов класса lmbDate сгрупированных по назначению.
Конструктор lmbDate может принимать различное число параметров:
Без параметров, тогда будет использован timestamp из time()
lmb_require('limb/datetime/src/lmbDate.class.php'); $date = new lmbDate(); // Эквивалентно new lmbDate(time());
Целочисленное число, которое будет воспринято как timestamp:
$date = new lmbDate(time()); $date = new lmbDate(1178867400);
2 целочисленных числа, тогда первое будет воспринято как timestamp, а второе - как часовой пояс:
$date = new lmbDate(time(), 2);
Объект класса lmbDate, тогда по сути мы создадим клон переданного объекта:
$date1 = new lmbDate(time()); $date2 = new lmbDate($date1);
6 целочисленных чисел, которые означают соответственно год, месяц, день, час, минуту и секунду. Любое количество параметров, кроме года и месяца можно опустить (будут использованы нулевые значения или 1 для дня):
$date1 = new lmbDate(2006, 12, 1, 12, 20, 20); $date2 = new lmbDate(2006, 12, 1, 12, 20); // эквивалентно new lmbDate(2006, 12, 1, 12, 20, 0) $date3 = new lmbDate(2006, 12, 1, 12); // эквивалентно new lmbDate(2006, 12, 1, 12, 0, 0) $date4 = new lmbDate(2006, 12); // эквивалентно new lmbDate(2006, 12, 1)
7 целочисленных чисел, которые означают соответственно год, месяц, день, час, минуту, секунду и часовой пояс.:
$date = new lmbDate(2006, 12, 1, 12, 20, 20, "Etc/GMT-3");
Строку с датой в ISO-формате:
$date1 = new lmbDate("2006-12-01 12:20:20"); $date2 = new lmbDate("2006-12-01 12:20"); // эквивалентно new lmbDate("2006-12-01 12:20:0"); $date3 = new lmbDate("2006-12-01"); // эквивалентно new lmbDate("2006-12-01 00:00:00"); $date4 = new lmbDate("2006-12-01 12:20:20", "Etc/GMT-3");
Помимо вызова конструктора lmbDate есть несколько других способов создать объект класса lmbDate:
Например:
$date = lmbDate :: create("2006-12-01 12:20:20")->addMinute(10)->addSecond(30); // вместо lmbDate("2006-12-01 12:20:20")->addMinute(10)->addSecond(30); , что в PHP запрещено. $days = $date->getDateDays(); $date2 = lmbDate :: createByDays($days + 3); // получили дату на 3 дня больше, то есть "2006-12-03 12:30:50"
lmbDate содержит большой набор методов для получения информации о дате:
lmbDate содержит статическую переменную $week_starts_at, которая содержит значение дня, который следует считать первым днем недели. По-умолчанию, эта переменная содержит 1, что соответствует Понедельнику. Если стоит значение 0 - это будет значит, что первый день недели - Воскресенье.
Для установки этой переменной есть метод lmbDate :: setWeekStartsAt($n)
lmbDate ведет себя как value object, то есть при его изменении всегда создается новый объект. lmbDate содержит большой набор методов, которые позволяют получить новый объект класса lmbDate на основе существующего.
Начнем с самых банальных:
Каждый из этих методов возвращает объект класса lmbDate с новой датой.
Пример:
$date1 = new lmbDate(time()); $date2 = $date1->setHour(0)->setMinute(0)->setSecond(0);
lmbDate поддерживает некоторое подобие арифметических операций:
$n - может быть отрицательным числом, то есть таким образом можно отнимать года, месяца, дни и т.д.
Например:
// Для получения последнего числа текущего месяца. $date2 = $date->setDay(1)->addMonth(1)->addDay(-1);
Есть так же группа более специфичных методов, которые могут быть использованы, например, при построении календарей:
lmbDate также содержит набор методов для сравнения дат между собой:
lmbDate также содержит базовые методы для вывода даты (форматирования) в ISO-формате:
Обсуждение