# Исправление проблемы с часовыми поясами в отображении времени блокировки

## Проблема
При блокировке теста после неудачной попытки время разблокировки отображалось некорректно для пользователей в часовых поясах, отличных от серверного. Показывалось "сейчас" вместо реального времени до разблокировки.

## Причина
1. Сервер отправлял дату в формате Carbon datetime, который автоматически сериализовался в JSON
2. JavaScript интерпретировал эту дату как локальное время вместо UTC
3. Функция `formatTimeUntilUnlock` не учитывала различие между серверным и клиентским временем

## Исправления

### 1. Серверная часть
- **CourseTestController.php**: Добавлено `->toISOString()` для корректной отправки UTC времени
- **TestAttemptController.php**: Добавлено `->toISOString()` для корректной отправки UTC времени

### 2. Клиентская часть
- **pluralize.js**: Улучшена функция `formatTimeUntilUnlock`:
  - Добавлена проверка формата даты (UTC vs локальное время)
  - Добавлена обработка ошибок парсинга даты
  - Добавлено логирование для отладки

## Тестирование
- Создан PHP тест в `tests/Unit/PluralizeTest.php`
- Создан HTML тест в `test_timezone.html` для проверки JavaScript функции

## Результат
Теперь время блокировки корректно отображается для пользователей в любых часовых поясах, так как:
1. Сервер всегда отправляет время в UTC формате (ISO 8601)
2. JavaScript правильно интерпретирует UTC время
3. Вычисления выполняются в UTC, что исключает ошибки смещения часовых поясов
