Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/250.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
UNIX时间,响应总是缩短一分钟(更快/更少)PHP MySQL_Php_Mysql_Unix Timestamp - Fatal编程技术网

UNIX时间,响应总是缩短一分钟(更快/更少)PHP MySQL

UNIX时间,响应总是缩短一分钟(更快/更少)PHP MySQL,php,mysql,unix-timestamp,Php,Mysql,Unix Timestamp,我们有一个时间和考勤门户,员工应用程序需要在其轮班开始时显示倒计时(例如:员工轮班时间为9-5,当他们在8:50打开应用程序时,服务器将给出10分钟的响应,应用程序将开始倒计时{9:59,9:58…等}) 我们将所有时间存储在utc中,并使用PHP函数将其转换为本地时间 直到上周,我们才开始注意到响应总是间隔一分钟(因此,对于上面的示例,将显示剩余的9:00分钟,以此类推)。无论换档时间或换档开始时间的差异 以下是服务器端逻辑: 以下是应用程序逻辑: ``如果currentTime

我们有一个时间和考勤门户,员工应用程序需要在其轮班开始时显示倒计时(例如:员工轮班时间为9-5,当他们在8:50打开应用程序时,服务器将给出10分钟的响应,应用程序将开始倒计时{9:59,9:58…等})

我们将所有时间存储在utc中,并使用PHP函数将其转换为本地时间

直到上周,我们才开始注意到响应总是间隔一分钟(因此,对于上面的示例,将显示剩余的9:00分钟,以此类推)。无论换档时间或换档开始时间的差异

以下是服务器端逻辑:

以下是应用程序逻辑:

``如果currentTime

谢谢~

第二个代码块是什么?如果是某种JavaScript预处理器生成客户端代码,那么这些代码当然会随着浏览器的时钟运行。这是应用程序(ios)上运行的代码。我们在服务器端执行大部分繁重的工作(用于计算等),但由于应用程序必须显示“实时倒计时”,这是占用unix时间并相应处理的本地逻辑。它工作了6个月,上周突然(代码结构没有改变)总是少了1分钟。。?
$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`