У нас есть портал времени и посещаемости, на котором приложениям сотрудников необходимо отображать обратный отсчет времени до начала их смены (например: смена сотрудников 9-5, когда они открывают свое приложение в 8:50, сервер выдастответ 10 минут, и приложение начнет обратный отсчет {9:59, 9:58 .... и т. д.))
Мы храним все время в utc и используем функции PHP для преобразования в местное время,
Все было хорошо и здорово, пока на прошлой неделе мы не начали замечать, что ответ всегда на одну минуту выключен (поэтому в приведенном выше примере будут отображаться оставшиеся 9:00 минут и т. Д.).независимо от времени смены или разности времени начала смены.
следующая логика на стороне сервера:
$fields['total_elapsed_time'] = $current_time - strtotime($first_check_in_timestamp);
$fields['current_time'] = $current_time;
следующая логика приложения:
```if currentTime < startTime {
self.isUserHaveShiftIn2Hours = true
let endDate = Date(timeIntervalSince1970: TimeInterval(startTime))
self.totalWorkingSeconds = Double(self.getNumberOfSeconds(startDate: startDate, endDate: endDate))
self.startTheCountDownForShift()
}```
`let startTime = response.result.value!.shift_start_time`
`let startDate = Date(timeIntervalSince1970: TimeInterval(currentTime))`
`let currentTime = response.result.value!.current_time`
спасибо! ~