私は現在、ユーザーがシングルボード組み込みコンピューターのローカル設定を変更できるようにするWebページをコーディングしています。私が現在取り組んでいる機能には、ボード上の時計をユーザーのコンピューター上の時計と同期させることが含まれます。Javascript Date()関数を使用すると、ローカルマシンの時刻を取得できるため、これを使用して現在の時刻を取得しています。
私の目標は、送信ボタンを作成することです。このボタンを押すと、javascript Date()関数から正確な時刻を取得し、POSTメソッドを使用してその時刻をphpコードに返します。値をPOSTする必要があるのは、ボードの時間設定を変更する権限を持つLinuxコマンドラインプログラムを実行できるようにするためです。
現在、ボードは正しく時刻を取得して正しくPOSTしますが、私が抱えている問題は、返される時刻がページが読み込まれた時刻であり、送信ボタンがクリックされた時刻ではないということです。
これは問題です。たとえば、ユーザーがWebページに5分間座ってからそのボタンをクリックすると、ボード上の時計が5分遅れて送信されるためです。
非表示の入力アイテムに値を割り当ててPOSTを試みましたが、正常に投稿されましたが、POSTされた時間はページの読み込み時間です。私が試したもう1つの方法は、javascript関数のonUnload呼び出しを<body>
タグに追加することでしたが、同じ方法を使用してその時間を渡そうとすると、値が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>
私は与えられることができるどんな提案にも感謝します、そして前もって感謝します。