プロが教える店舗&オフィスのセキュリティ対策術

質問2点あります

■1.現在時刻を反映させたプルダウンの作り方を教えてください。
■2.PHPがどこの時刻を見に行くかについて

■1.セレクトメニューの中が、何時何分てなってて、
初期表示で、現在時刻を表示させたいです。
また、時間と分は、それぞれ独立してプルダウンで選択させ、かつ、分の選択項目は、10分単位で表示させたいです。

■2.PHPがどこの時刻を基準にするかが分からないのですが、
例えば、サーバPCの時間が狂ってたら、
そこを基準にして書いたPHPスクリプトは、すべて違った時間で表示されてしまうのでしょうか?
それとも、書き方によっては、
「UTC」とか「 GMT」などの時刻を見に行って、
例え、サーバPCの時間が狂っていたとしても、
正しい時刻を表示させることは可能なのでしょうか?

A 回答 (1件)

>10分単位で表示させたいです。



10分単位でどう表示させたいのでしょうか?
一番重要な仕様提示がぬけています

>サーバPCの時間が狂ってたら、

サーバーの時間しか見ていませんので、くるっていたらアウトです。
そもそもサーバーの時間はntpなどで自動で併せるものです。
もし未設定なら、設定してください。

>例え、サーバPCの時間が狂っていたとしても、
>正しい時刻を表示させることは可能なのでしょうか?

クライアントPCの時間を主とすることもできます。
その場合はjavascriptを利用することになります。
ただしクライアントPCの時間があっている保証ありませんね

以下、サンプルを上げておきます。
10分未満の数字は切り捨て処理をしています。
切り上げの場合は時間を調整する必要があるので注意してください。

<form>
<?PHP
$datetime=mktime();
print "Now:".date("H:i:s",$datetime)."<br>\n";
$h=intval(date("H",$datetime));
$m=intval(date("i",$datetime));
$str.="<select name=\"hour\">\n";
for($i=0;$i<24;$i++){
$selected=($h==$i)?" selected":"";
$str.="<option value=\"".$i."\"{$selected}>".sprintf("%02d",$i)."</option>";
}
$str.="</select>\n";
$str.="<select name=\"minute\">\n";
for($i=0;$i<60;$i+=10){
$selected=(($m- ($m%10))==$i)?" selected":"";
$str.="<option value=\"".$i."\"{$selected}>".sprintf("%02d",$i)."</option>";
}
$str.="</select>\n";
print $str;
?>
</form>
    • good
    • 1
この回答へのお礼

回答ありがとうございます。

>一番重要な仕様提示がぬけています
失礼しました。「切り捨て」と「切り上げ」があるんですね。そこまで考えが及びませんでした。

>サーバーの時間しか見ていませんので、くるっていたらアウトです。
ありがとうございます。サーバーの時間が狂っているわけではないのですが、基本的なことが分からなかったので、聞いてみました。

>以下、サンプルを上げておきます。
期待通りに動作しました。
大変参考になりましたー

お礼日時:2011/08/03 00:30

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!