Дата и время

Для работы с датой\временем используется библиотека 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