Дата и время
Для работы с датой\временем используется библиотека Carbon
Ядром используется временная зона UTC
use Carbon\Carbon;
$now = Carbon::now('UTC');
Если просто нужна строка с текущей датой и временем (например для записи в БД), тогда можно воспользоваться этим кодом
// 2018-01-01 12:45:32
$string = $this->dic['datetimenow'];
Работа с датой
В DIC можно найти смещение (в минутах) относительно UTC и часового пояса устройства пользователя $this->dic['utc_offset']
- Чтобы получить серверное
UTC
время из данных, которые передал пользователь, надо выполнить следующий код:use Lemurro\Api\Core\Helpers\ServerDateTime; //utc_offset = 300 $sdt = new ServerDateTime($this->dic); $sdt->get('12:00', 'H:i', 'H:i'); // 07:00 $sdt->get('12:00', 'H:i'); // 2018-12-13 07:00:00
- Чтобы получить локальное (пользовательское) время из
UTC
, надо выполнить следующий код:use Lemurro\Api\Core\Helpers\LocalDateTime; //utc_offset = 300 $sdt = new LocalDateTime($this->dic); $sdt->get('07:00', 'H:i', 'H:i'); // 12:00 $sdt->get('07:00', 'H:i'); // 2018-12-13 12:00:00