Verification: a143cc29221c9be0

Php bitrix работа с датой

Php bitrix работа с датой

Фильтрация по дате активности

Для $arFilter использовать DATE_ACTIVE_FROM, DATE_ACTIVE_TO, подробнее

Приведение даты в PHP-формат

Элементы имеют следующие параметры:

  • CREATED_DATE - дата создания БЕЗ учета времени

  • DATE_CREATE - дата создания с учетом времени

bitrix-date-format.php
$date = DateTime::createFromFormat('Y.m.d', $item['CREATED_DATE']); // только дата
$date = DateTime::createFromFormat('d.m.Y H:i:s', $item['DATE_CREATE']); // дата и время

Для свойств:

bitrix-date-property.php
$date = DateTime::createFromFormat('d.m.Y H:i:s', $item['PROPERTY_SOME_DATE_VALUE']);

Разница в днях между датами

Разница в днях между датой элемента и текущей датой:

bitrix-date-diff.php
$date = DateTime::createFromFormat('d.m.Y H:i:s', $item['PROPERTY_SOME_DATE_VALUE']);
$now = new DateTime();
$dayDiff = $date->diff($now)->format('%a');

:!: Возможно, что битрикс хранит дату записи в одной зоне, а текущее время new DateTime() - в другой. Поэтому разница только что созданной записи и текущего времени таким образом может быть не равна нулю!

Округление идет в меньшую сторону, т.е. разница в 23 часа 59 мин 59 сек = 0 дней. Можно сказать, что если $date->diff($now)->format('%a') >= 1, прошло минимум 24 часа.

Точное значение в годах, месяцах, днях, часах, минутах и секундах:

date-diff.php
die(var_dump(
  $date->diff($now)->format('%Y-%M-%D %H:%I:%S')
));

Разница в секундах - именно не по секундам, а общая в секундах:

date-diff-seconds.php
$diff = $now->getTimestamp() - $date->getTimestamp();

Отмотать дату

Отмотать дату на начало предыдущего дня ($numDays = 1) или позавчера ($numDays = 2), причем с округлением до полуночи:

back-in-time.php
$now = new DateTime('now');
$intervalStart = clone $now;
$intervalStart->modify(sprintf('-%s day', $numDays))->setTime(0, 0, 0); // 2016-05-04 00:00:00

1. Обновление версии BitrixEnv

Перед началом работы обязательно создайте резервную копию сервера: самостоятельно или с помощью инструмента бэкапов в панели управления.

Далее подключитесь к серверу по SSH и выполните в меню Bitrix следующие действия.

Если версия BitrixEnv ниже 7.4.3

Сначала необходимо обновить версию окружения до 7.4.3. Если вы уже используете эту версию, переходите к разделу Если версия BitrixEnv 7.4.3 или выше.

Для обновления до 7.4.3. выполните:

  1. Выберите пункт 1. Manage servers in the pool, затем 4. Update packages on host.
  2. При запросе Enter server address введите IP-адрес сервера:

  3. При запросе Please choose update type введите на выбор: bitrix - для обновления только BitrixEnv до актуальной версии, либо all для обновления всех имеющихся пакетов, в том числе BitrixEnv:

  4. Дождитесь завершения обновления.

Теперь версия окружения - 7.4.3, и вы можете выполнить следующие шаги по инструкции. 

Если версия BitrixEnv 7.4.3 или выше

Необходимо обновить версию окружения до 7.4.11. Для этого:

  1. Выберите пункт 1. Manage servers in the pool, затем 10. Enable or disable bitrix-env beta versions:

  2. Выберите пункт 1. Enable bitrix-env beta versions, после чего введите y для подтверждения обновления:

  3. Выберите пункт 1. Manage servers in the pool, затем 4. Update packages on host.
  4. При запросе Enter server address введите IP-адрес сервера.
  5. При запросе Please choose update type введите на выбор: bitrix - для обновления только BitrixEnv до актуальной версии, либо all для обновления всех имеющихся пакетов, в том числе BitrixEnv.
  6. Запустится процесс обновления. Отслеживать его можно в главном меню, выбрав пункт 10. Background pool tasks.

    Статус running означает, что операция выполняется; finished – операция успешно завершена. 

    Также может быть указан статус Error. Если обновление привело к некорректной работе ваших проектов, создайте обращение в нашу поддержку, предоставив реквизиты доступа к серверу для анализа проблемы.

После завершения обновления версия окружения изменится на 7.4.11: