- ベストアンサー
現在時刻を反映させたプルダウンの作り方とPHPの時刻基準について
- セレクトメニューの中が、現在時刻を表示させたいです。時間と分は独立してプルダウンで選択させ、分の選択項目は10分単位で表示させたいです。
- PHPがどこの時刻を基準にするかが分からない場合、サーバPCの時間が狂っていたとしても正しい時刻を表示する方法があるのかについて調べています。
- みんなの回答 (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>
お礼
回答ありがとうございます。 >一番重要な仕様提示がぬけています 失礼しました。「切り捨て」と「切り上げ」があるんですね。そこまで考えが及びませんでした。 >サーバーの時間しか見ていませんので、くるっていたらアウトです。 ありがとうございます。サーバーの時間が狂っているわけではないのですが、基本的なことが分からなかったので、聞いてみました。 >以下、サンプルを上げておきます。 期待通りに動作しました。 大変参考になりましたー