gpt4 book ai didi

javascript - 如何同步php或客户端时间与MySQL时间?

转载 作者:行者123 更新时间:2023-11-29 13:14:09 25 4
gpt4 key购买 nike

在我的服务器上,数据库服务器时间和 php 时间之间存在差异,我需要它们为我的 (CakePHP) 应用程序同步。我在数据库中有一个带有时间戳的日志,我需要从那一刻起显示一个 jQuery 计数器。当我将其保留为默认值时,它从 1:03:58 而不是 0:00:00 开始。有什么方法可以做到这一点?

这是计数器代码,php $counter 变量包含数据库时间戳 int 值。

$('#counter').countdown({since: <?php echo $counter?>, format: 'HMS', compact: true});

这是我用于计数器的 jquery 插件: http://keith-wood.name/countdown.html

这是 $counter 获取值的地方(它是时间戳的数据库查询):

public function getCounter ($task_id, $user_id) {
$output = false;
if($this->User->UserLog->hasAny(array(
'user_id' => $user_id,
'task_id' => $task_id,
'end_time' => null,
))) {
$output = $this->User->UserLog->field('start_time', array(
'user_id' => $user_id,
'task_id' => $task_id,
'end_time' => null,
));
$output = strtotime($output);
}
return $output;
}

然后只需$counter = $this->Task->getCounter ($task_id, $user_id);

最佳答案

我认为问题是你的 jQuery 插件在传递 Unix 时间戳时需要一个 JavaScript Date 对象

尝试这样的事情:

PHP

$counter = $counter*1000; //javascript expects milliseconds

JavaScript

$('#counter').countdown(
{
since: new Date(<?php echo $counter?>),
format: 'HMS',
compact: true
});

编辑:如果您的客户端与服务器不同步,您的插件可以让您同步两者。

查看倒计时插件中的时区部分。

您必须构建一个 JS 函数,使用 ajax 检索实际服务器时间,并将函数名称传递给插件构造函数。

function serverTime() { 
var time = null;
$.ajax({url: 'http://myserver.com/serverTime.php',
async: false, dataType: 'text',
success: function(text) {
time = new Date(text);
}, error: function(http, message, exc) {
time = new Date();
}});
return time;
}

关于javascript - 如何同步php或客户端时间与MySQL时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21699175/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com