2017-06-16 4 views
1

PHPは、私が知る限り、サーバ側でしか時間を見つけることができません。私は時間がクライアントの時間になるようにしたい。私のアプローチは、JavaScriptを使用して、クライアントの時間を取得し、PHPに渡すことでした。これは動作しますが、この "時間"をlogファイルに保存する必要があります。ここに私のコードは、これまでのところです:PHPのクライアント時間

上記のコードでは

JS

var d = new Date(); 
document.getElementById("timestamp").value = d.getTime()/1000; 

PHP

$datevar = date('d/m/Y', $_POST['timestamp']) . ' at ' . date('h:i', $_POST['timestamp']) . PHP_EOL; 

$log_file_name = '1.log'; 
file_put_contents($log_file_name, $variable .": $variable, $variable, $datevar" , FILE_APPEND); 

HTML

<form name="contactform" method="post" action="survey.php"> 
<input type="hidden" id="timestamp" name="timestamp" value="" /> 
<input name="submit" type="submit" value="Submit"> 
</form> 

、ログファイルは実際の時刻ではなくJSコードを正確に表示します。

私は実際のクライアント時間を保存したいと思います。どんな助けもありがとう。前もって感謝します。

+0

から提出提出のUNIXタイムスタンプを変換するために、PHPの

strftime("%b, %d, %Y", TIMESTAMP) 

メソッドを使用することができます何が '$ _POST [「タイムスタンプ」]'実際にあなたがPHPでそれを得るときのように見えますか? – WillardSolutions

+0

文書が存在するまでスクリプトコードを実行するのを待っていますか? –

+0

フォーム提出の直前に 'timestamp'値を設定します。ページがロードされている時間を設定することができます(スクリプトの読み込みを意味します) – Zico

答えて

0

あなたはjavascriptのコードを使用して試すことができます:

Math.round((new Date()).getTime()/1000); 

は、クライアント側でのUNIXタイムスタンプを取得し、ログインしてファイルに保存するフォームの中でそれを送信します。あなたは、クライアントのエンド

+0

ありがとう、私はこれを試してみよう! – Sank6

+0

うまくいく! :) – Ken

+0

いいえ、申し訳ありませんが、ログファイルに何も表示されませんでした。私は '$ d、%d、%Y"、TIMESTAMP) ''に '$ datevar'を設定し、JS内に' Math.round((new Date())。getTime()/ 1000);を入れて、隠された入力を残しました。 – Sank6