[редактировать]

Дата и Время


Как получить текущую дату и время?

Информация о том, как получить дату и время в удобном виде.

Для работы со временем используйте специальный класс php\time\Time, чтобы получить текущее время и дату используйте код:

use php\time\Time;

$now = Time::now();
alert($now->toString('yyyy-MM-dd HH:mm'));

Где формат вывода времени это yyyy-MM-dd HH:mm, y - это год, M - месяц, d - день, H - час, m - минута, s - секунда.

Чтобы вывести только дату используйте формат yyyy-MM-dd, например. Можно использовать и другое сочетание, например dd.MM.yyyy.


Как получить текущий год, месяц и день?

Удобный способ получить текущий год, месяц и день.

Для этого используйте класс php\time\Time и его методы:

use php\time\Time;

$now = Time::now(); // получаем текущую дату

$year = $now->year(); // текущий год
$month = $now->month(); // текущий месяц

День можно получить в разном контексте:

$day = $now->day(); // день в году, от 1 до 356
$dayOfMonth = $now->dayOfMonth(); // день в месяце, от 1 до 31
$dayOfWeek = $now->dayOfWeak(); // день недели, от 1 до 7, 1 - воскресенье, 7 - суббота.

Как получить timestamp в linux виде?

Простой способ получить linux timestamp значение времени в системе.

Используйте класс php\time\Time или функцию time() из php:

use php\time\Time;

$time = Time::seconds(); // в секундах.
$millis = Time::millis(); // в миллисекундах.

// или
$time = time(); // в секундах.

Linux timestamp это количество секунд, прошедших с 1970 года на текущий момент времени.


Как получить текущее время в другой временной зоне?

Применение timezone возможностей для получения текущего времени.

Используйте классы php\time\Time и php\time\TimeZone:

use php\time\Time;
use php\time\TimeZone;

$now = Time::now(TimeZone::of('Europe/London'));

alert($now->toString('yyyy.MM.dd HH:mm'));

Список возможных временных зон, можно найти на странице "Временные Зоны (Timezone)".


Как получить название месяца даты?

$month = 7; // 7 месяц.
$name = Time::now()->replace(['month' => $month])->toString('MMMM');

alert($name);

Если вам необходимо получить имя месяца на русском языке, то передайте локаль в метод toString():

$month = 7; // 7 месяц.
$name = Time::now()->replace(['month' => $month])->toString('MMMM', new Locale('ru', 'RU')); // ru - язык, RU - страна

alert($name);

emoji symbols:information_source Укороченное название месяца можно получить передав MMM вместо MMMM в метод toString().


Как парсить дату из строки по определенному формату?

Перевод строки в объект даты.

Для парсинга даты из строки используйте класс php\time\TimeFormat и его метод parse():

$format = new TimeFormat('dd.MM.yyyy');
$date = $format->parse('12.03.2017');

// $date это объект типа Time 
var_dump($date);

Как прибавить/убавить к дате день, месяц год и т.д.?

Способ легко менять составляющие даты.

$date = Time::now(); // берем текущую дату
$newDate = $date->add(['day' => 1]); // прибавить к дате 1 день
alert($newDate->toString('dd.MM.yyyy')); // показываем дату

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

$date = Time::now(); // берем текущую дату
$newDate = $date->add(['day' => -1]); // уменьшить дату на 1 день
alert($newDate->toString('dd.MM.yyyy')); // показываем дату

Кроме day еще доступны другие варианты:

  • month - месяц
  • year - год
  • hour - час
  • min - мининута
  • sec - секунда
  • millis - мл. секунды.