From c7f4e7264e5a9999ec472abe0ffd52aafee2d73c Mon Sep 17 00:00:00 2001 From: Sergey Gripinskiy Date: Tue, 19 Jan 2021 17:23:10 +0300 Subject: [PATCH] =?UTF-8?q?fix:=20=D0=9D=D0=B5=D1=82=20=D0=B2=D0=B5=D0=B4?= =?UTF-8?q?=D1=83=D1=89=D0=B8=D1=85=20=D0=BD=D1=83=D0=BB=D0=B5=D0=B9=20?= =?UTF-8?q?=D0=B2=20TimeType::toString()?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Исправлено: - метод TimeType::toString() не добавлял ведущие нули к часам, минутам и секундам. --- CHANGELOG.md | 33 +++++++++++++++++++++++---------- src/main/TimeType.php | 16 +++++++--------- 2 files changed, 30 insertions(+), 19 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 406ed37..14b7840 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,39 +1,52 @@ Change Log ============ +0.7.3 +----- + +### Исправлено + +- метод `TimeType::toString()` не добавлял ведущие нули к часам, минутам и секундам. + 0.7.2 ----- ### Исправлено -- Уточнена проверка на запрос из административной панели в `TimeType::getEntityField()` + +- уточнена проверка на запрос из административной панели в `TimeType::getEntityField()` 0.7.1 ----- ### Исправлено -- Поле типа `TimeType` не работало в админке из-за внутреннего бага Битрикс, не способного разрешить связку с - `TimeField` + +- поле типа `TimeType` не работало в админке из-за внутреннего бага Битрикс, не способного разрешить связку с + `TimeField` 0.7.0 ----- ### Добавлено -- Метод `TimeType::parseValue()` для разбора строки в отдельные компоненты времени. -- Метод `TimeType::createValueString()` для соединения отдельных компонентов времени в строку. -- Метод `TimeType::toString()` для возвращения строкового представления данных. -- Связка `TimeType` с типом поля `\WebArch\BitrixOrmTools\Field\TimeField` из - [webarchitect609/bitrix-orm-tools](https://packagist.org/packages/webarchitect609/bitrix-orm-tools). + +- метод `TimeType::parseValue()` для разбора строки в отдельные компоненты времени. +- метод `TimeType::createValueString()` для соединения отдельных компонентов времени в строку. +- метод `TimeType::toString()` для возвращения строкового представления данных. +- связка `TimeType` с типом поля `\WebArch\BitrixOrmTools\Field\TimeField` из + [webarchitect609/bitrix-orm-tools](https://packagist.org/packages/webarchitect609/bitrix-orm-tools). 0.6.1 ----- ### Добавлено -- Класс `WeekDayISO8601` с константами дней недели по ISO-8601. + +- класс `WeekDayISO8601` с константами дней недели по ISO-8601. 0.6.0 ----- -Добавлен новый тип "Время(без даты)" +### Добавлено + +- добавлен новый тип "Время(без даты)" 0.5.1 ----- diff --git a/src/main/TimeType.php b/src/main/TimeType.php index acb5996..90fa344 100644 --- a/src/main/TimeType.php +++ b/src/main/TimeType.php @@ -592,7 +592,7 @@ public static function createValueString(int $hour, int $minute, int $second, bo * @return string[] [(string)$negative, (string)$hour, (string)$minute, (string)$second] Если время * отрицательное, то час будет меньше нуля. * - * TODO Добавить поддержку (float)$second. + * TODO Добавить поддержку (float)$second( т.е. 000:00:00.000 ). */ public static function parseValue($rawValue): array { @@ -671,14 +671,12 @@ public static function toString($value): ?string && trim($value[self::VALUE_MINUTE]) != '' && trim($value[self::VALUE_SECOND]) != '' ) { - /** - * Всеми другими методами должно гарантироваться, что соблюдается строгий порядок следования элементов: - * - negative - * - hour - * - minute - * - second - */ - return array_shift($value) . implode(self::S, $value); + return $value[self::VALUE_NEGATIVE] + . sprintf(self::NUMBER_FORMAT, abs($value[self::VALUE_HOUR])) + . self::S + . sprintf(self::NUMBER_FORMAT, abs($value[self::VALUE_MINUTE])) + . self::S + . sprintf(self::NUMBER_FORMAT, abs($value[self::VALUE_SECOND])); } return null;