PHPでPCのローカル時刻は取得出来ますでしょうか?
現在、javascriptで取得しているのですが、これを
PHPの変数として取得出来ないか考えております。
javascriptでは下記のように取得して表示させています。
<script type="text/javascript">
var nowtime = new Date();
var hour = nowtime.getHours();
var minute = nowtime.getMinutes();
var second = nowtime.getSeconds();
if(hour < 10) { hour = "0" + hour; }
if(minute < 10) { minute = "0" + minute; }
if(second < 10) { second = "0" + second; }
document.write(hour,minute,second);
</script>
例えば現在が12時34分56秒だとしたら、javascriptで
「123456」という6ケタの数字を取得出来ます。
この「123456」を、PHPの変数として使いたいです。
($jikoku = 123456)
どなたかお知恵を拝借出来ませんでしょうか?
何卒宜しくお願い致します。
No.9ベストアンサー
- 回答日時:
<!---
> フォームのメソッドをPOSTからGETに変える事で出現しなくなりました。
その発想はありませんでした。
そんな感じに作り直してみました。
> 現在はGoogle chromeだと表示が出来ないトラブルに見舞われております。
そちらの書いたソースが分かりませんので、何とも言えませんが、
以下に こちらのソースを使って 調べた結果を列記します。
・Lunascape 2.9.3
Tue Feb 23 18:29:40 UTC+0900 2010
・Chrome 4.0.249.89 (38071)
Tue Feb 23 2010 18:25:17 GMT+0900 (Japan Standard Time)
・Opera 10.10
Tue Feb 23 2010 18:25:53 GMT+0900
・IE 7
Tue Feb 23 18:25:59 UTC+0900 2010
・FireFox 3.6
Tue Feb 23 2010 18:27:07 GMT+0900
・Safari 4.0
Tue Feb 23 2010 18:27:46 GMT+0900 (“??? (?W????))
ブラウザによって、若干、返す文字列が違っているようです。
JavaScriptは ブラウザによって実装されている仕様が異なる場合がありますので、差分の吸収が面倒な事になることが多々あります。
ご参考になれば幸いです。
--->
<?
$now = $_GET[now];
$me = $_SERVER[PHP_SELF];
if ($now) {
$outD = "PC LocalTime is $now";
$time = 10000;
} else {
$time = 1;// 最初の一回目だけ1m秒でリロード
}
//----------------------------------------------------------
?>
<html>
<head>
<script type='text/javascript'>
setTimeout(load, <?= $time ?>);
function load() {
var nowtime = new Date();
document.Form02.now.value = nowtime;
document.Form02.submit();
}
</script>
</head>
<body>
<?= $outD ?>
<form name=Form02 action=<?= $me ?> method=get>
<input type=hidden name=now Value=''>
</form>
</body>
</html>
お返事が遅くなり申し訳ありません、
頂いたスクリプトを利用して、見事に全ての問題が解決致しました。
このスクリプトはきっと色々なシーンで利用する機会があると思うので
大事に保管しておきます。本当にありがとうございました。
No.7
- 回答日時:
<?/*
自動リロードって事ですので、おおかた 以下のやり方をしたと思われますが、
----- ----- ----- ----- ----- -----
setTimeout(Reload, 10000);
function Reload(){
window.location.reload();
}
----- ----- ----- ----- ----- -----
これだと、#6 のお礼に書かれている状況になります。
と言う事で、書き直してみました。
ただし、これだと、最初の10秒は 時刻は表示されず ぼーっと待つ事になります。
ちなみに、これもブラウザ閉じるまで、エンドレスです。
あと #6の補足にかかれた事は、今の俺の熱を帯びた灰色の脳では、
具体的にどうやりたいのか分かりませんでした。
*/?>
<html>
<head>
<script type='text/javascript'>
setTimeout(load , 5000);
function load() {
var nowtime = new Date();
document.Form02.now.value = nowtime;
document.Form02.submit();
// alert(nowtime);
}
</script>
</head>
<?
$now = $_POST[now];
$me = $_SERVER[PHP_SELF];
if (!$now) { $now = "今 調べてるから 10秒お待ちください"; }
print "PCのローカル時刻は $now";
?>
<body>
<form name=Form02 action=<?= $me; ?> method=post>
<input type=hidden name=now Value=''>
</form>
</body>
</html>
No.6
- 回答日時:
#5です。
#5 で 俺が書いたものは、そちらが言う所の index.php の全文です。
<html>~</html>をコピペしてもらって、index.php と言うファイル名つけて保存すれば、動きの確認が出来る程度のものです。
$_POST[now] がなければ、最初のアクセスと判断し、<html>から数えて8行目の「 } else { 」以降を実行し、
$_POST[now] があった場合は、form から PCのローカル時刻が submit されてきたものと判断し、5行目の「 if ($now) { 」以降を実行しています。
この回答への補足
ご連絡が遅くなり誠に申し訳ございません。
無事、1ファイルで変数の取得まで辿り着く事が出来ました。
確認なのですが、このやり方の場合、変数を取得したいページにrequire_onceなどで
変数を引っ張る事は出来ず、各ファイル毎にこのスクリプトを組んでおかなければ
働きませんでしょうか?(試しに別ファイルへ「index.php」をrequire_onceして
変数を引っ張ろうと挑戦してみましたが、変数は入っておりませんでした)
いずれにせよ、bm_hiro様や他の方のアドバイスのおかげで当初の目的を達成する事が
出来ました。ありがとうございます。
たびたび申し訳ございません、お礼の欄なのですが質問になります。
無事、変数がゲットできて嬉しかったのですが、新しい問題が出てきました。
index.phpにて、自動リロードが掛かると、その度に「フォームデータを再送信する必要が~~~」の
メッセージが流れてしまいます。サイトの性質上、自動リロードはそのまま使いたいのですが、
この「再送信~~」のエラーメッセージを出さなくする方法はございませんでしょうか。
(ブラウザは、IE8、Firefox3ともに出てしまいます。ユーザー設定で非表示に出来ましたが
それだとユーザーの設定に依存してしまう為、なんとかこちら側で非表示の処理を行いたいです)
不可能なお話でしょうか…??
No.5
- 回答日時:
既に出ている情報を基に具体的に書くとこうですが、下手な書き方をすると無限ループの完成なので要注意です。
えぇ、もちろん 俺は 一度 無限ループをやりましたとも。(ぁ
alert入れてるのは 深い意味はありません。
JavaScriptが返す時間も、パースするのが面倒だったので そのままにしてます。
結局、これだとリロードしてしまってるようなもんなので、重いページには向きません。
<html>
<?
$now = $_POST[now];
$me = $_SERVER[PHP_SELF];
if ($now) {
print "<body>PCのローカル時刻は $now";
} else {
print "
<head>
<script type='text/javascript'>
function load() {
var nowtime = new Date();
document.Form02.now.value = nowtime;
document.Form02.submit();
alert('test');
}
</script>
</head>
<body onLoad='load()'>
<form name=Form02 action=$me method=post>
<input type=hidden name=now Value=''>
</form>";
}
?>
</body>
</html>
この回答への補足
ご回答ありがとうございます。
ただいま、No4さんへの補足回答をさせて頂いたばかりなのですが、
私がNo4さんへコメントした補足欄の方法が、今書いて頂いたこちらの構文で
叶いますでしょうか?書いて頂いたタグは私のページの「どこに」書けば
良いものなのかが分からず…申し訳ございません…「form.html」でしょうか。
ちなみに私も先ほど無限ループに陥りました。
form.htmlにアクセスすると自動的に変数を持った状態でindex.phpを開いてくれたので、
試しに、「form.html」をrequire_onceしてみたところ、見事に無限ループへと誘われました。
No.4
- 回答日時:
こんにちは。
いいえ。ボタンでsubmitするのをonloadイベントで行ってあげるだけです。
(ボタンをクリックするのを勝手にやるイメージ)
この回答への補足
何度もご回答ありがとうございます。
素人ながらの試行錯誤の末、「form.html」にアクセスすると、自動的に
index.phpへ飛び、index.php内で時刻データを変数として利用できるようになりました。
ただこの場合、index.phpに直接アクセスすると、form.htmlを経由していないので
当然変数を利用する事が出来ないのですが、なんとかindex.phpに直接アクセスで
変数が利用できる方法はございませんでしょうか。
根本的に、今回私が何をしたいのかと言うと、
「ユーザーのPC時計がX時10分の場合、index.phpの内容の一部を「10.txt」に書かれている
タグで表現したい」です。X時24分なら「24.txt」を、X時50分なら「50.txt」を
require_onceで引っ張ります。
ユーザーはまずindex.phpを一番最初にアクセスするので、
やはり今回は実現不可能なお話でしょうか…
やはりajaxを使わなければ無理ですかね…?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript 画像の表示位置 3 2022/12/23 08:25
- JavaScript javascriptで変数を組み込みたい 2 2023/01/13 09:52
- JavaScript JAVASCRIPT 2 2022/04/15 15:10
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- JavaScript javascriptのちょっとした動作不良(原因は突き止めたのですが) 1 2023/06/15 19:58
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- Excel(エクセル) 出退勤管理の遅刻・早退時間について 3 2023/08/10 15:33
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
セッションを使わずに遷移先画...
-
フォームで作った送信ボタンが...
-
VBSのIEオブジェクトでフ...
-
PHPでURLにジャンプするには?
-
特殊文字を含むフォームデータ...
-
テキストリンクをPOST送信したい
-
なぜ、unexpected T_VARIABLEに...
-
アマゾンのような評価の星を選...
-
JavaScript変数をPHPへ渡す
-
formの外にあるチェックボック...
-
リンク先のフォームに自動的に...
-
HTMLで前の画面に戻る時、入力...
-
Javascript→PHPに...
-
<input type="hidden" >で配列...
-
【PHP】 文字サイズの変更につ...
-
PHPの関数実行
-
cookieでチェックボックスの状...
-
PHP ボタンが押されたら処理を...
-
フォームボタンを押すたびに数...
-
PHPで部分一致検索をしたい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PHPでURLにジャンプするには?
-
フォーム送信後の更新ボタンで...
-
アマゾンのような評価の星を選...
-
PHPのエラーの解消法について教...
-
phpで、フォームのラジオボタン...
-
テキストリンクをPOST送信したい
-
セッションを使わずに遷移先画...
-
ボタンをクリックでPHP文を実行
-
PHPでファイルアップロード時に...
-
$_POST['hoge']のデータをフラ...
-
PHPの質問:フォームから受け取...
-
送信ボタンでカウントアップ
-
JavaScript変数をPHPへ渡す
-
ローカルにあるhtmlのフォーム...
-
リンク先のフォームに自動的に...
-
formの外にあるチェックボック...
-
フォームで作った送信ボタンが...
-
PHP 入力フォームにて半角スペ...
-
なぜ、unexpected T_VARIABLEに...
-
VBSのIEオブジェクトでフ...
おすすめ情報