我目前正在编写一个网页,允许用户更改单板嵌入式计算机上的本地设置。我目前正在研究的一项功能涉及将主板上的时钟与用户计算机上的时钟同步。 Javascript Date()函数允许我获取本地机器的时间,所以我使用它来获取当前时间。
我的目标是创建一个提交按钮,当按下该按钮时,将从javascript Date()函数获取确切时间,然后使用POST方法将该时间返回到我的php代码。我需要POST值的原因是,我可以运行一个Linux命令行程序,该程序有权改变板的时间设置。
现在,董事会正确地获取时间并将其正确发布,但是我遇到的问题是返回的时间是页面加载的时间,而不是点击提交按钮的时间。
这是一个问题,因为如果用户坐在网页上,比如说5分钟,然后单击该按钮,则主板上的时钟将被提交一个5分钟后的时间。
我已经尝试通过将它分配给一个隐藏的输入项,它成功发布它,但POSTed时间是页面加载时间后发送值。我试过的另一种方法是在<body>
标记中添加一个javascript函数的onUnload调用,但当尝试使用相同的方法传递该时间值时,该值似乎不会被POST。
下面是我目前工作的重要代码块:
<?php
echo "<form method='POST' action='".$PHP_SELF."'>";
if (isset($_POST['getLocalTime']))
{
echo $_POST['localTime'].'<br>';
$setLocalTime = "My Commandline String";
exec($setLocalTime);
}
?>
<input type="hidden" id="localTime" name="localTime">
<script language='JavaScript'>
var date = new Date();
var d = date.getUTCDate();
var day = (d < 10) ? '0' + d : d;
var m = date.getUTCMonth() + 1;
var month = (m < 10) ? '0' + m : m;
var year = date.getUTCFullYear();
var h = date.getUTCHours();
var hour = (h < 10) ? '0' + h : h;
var mi = date.getUTCMinutes();
var minute = (mi < 10) ? '0' + mi : mi;
var sc = date.getUTCSeconds();
var second = (sc < 10) ? '0' + sc : sc;
var loctime = month + day + hour + minute + year + "." + second;
document.getElementById('localTime').value = loctime;
</script>
<?php
echo "<pre>";
print_r($_POST);
echo "</pre>";
?>
<input class="button" type="submit" name="getLocalTime" value="Copy Local Time">
</form>
我明白,可以给出任何建议,并在此先感谢。
非常感谢!它完美的工作! – jetbomber117