• 締切済み

時間計算

初歩的な質問になるかもしれませんが お願いいたします。 ホームページ上で時間の計算をしたいと考えております。 HPのフォーム等で時間を登録 その時間まであと何時間かを表示。 その時間が過ぎれば定型文を表示。 私はプログラムとかまったく出来ないので こういうphpを探しています。 技術的には可能でしょうか? 可能ならば こういうプログラムを 無料で公開している所を ご存じないでしょうか? 詳しい使い方を申しますと 私は今、ネイルサロンを立ち上げている段階で HPを製作(私が作っています)しているのですが HP上でお客様が今、来店したときに どれくらいの待ち時間が必要か HP上で確認できるようにしたいと思って こういうCGI、PHPを探しています。 HPをそのつど更新すればよいのでしょうが いかんせんスタッフがつきっきりで 更新というのは無理があり、 出来れば、スタッフが持っている携帯で HPを開き、そこで 今から何分~何時間接客(ネイル処理) ということを登録すれば HPを見たお客さんが 何時間待ちというのを わかる、見れる。と言う風にしたいと 考えております。 BBS等で書き込みを パスワード制にして。。。 ということも考えましたが 見た目がスマートではないので 出来ればPHPなどを使いたいと考えてます。 製作会社に依頼をすることも考えましたが いかんせん初期投資を できるだけ抑えたいもので。。。すいません。 もし、多少勉強すれば 製作可能なら自分で勉強して 製作したいとも思います。 いろいろサイトを回っても 現在時刻を取得、表示、 日付の計算等しか見つからず 悩んでおります。 参考になる HP等でも結構ですので お力をおかしねがいます。

みんなの回答

  • bis_love
  • ベストアンサー率80% (4/5)
回答No.3

No.2です。 すみません、そもそも携帯で更新したい、って話でしたね(^^; 携帯で更新されたいなら、やっぱりPHPになりますね。失礼しました。 >HPのフォーム等で時間を登録 >その時間まであと何時間かを表示。 >その時間が過ぎれば定型文を表示。 ※上記のようなシステムはどこかで提供されているのかもしれませんが、ないという前提で進めさせていただきます。 このようなシステムを運用する場合、以下のようなステップを踏みます。 1.時間を登録するフォームを作成する。(スタッフが使用) 2.待ち時間を計算して表示するPHPを作成する。(お客様が使用するページ) 必要なファイルは以下のとおり。 (1)時間を登録するフォーム (2)フォームのデータを受け取り外部ファイルに時間を書き込むPHP (3)時間を書き込むファイル (4)(3)のファイルと、アクセス時間とを計算しメッセージを表示するPHP で、簡単にですが作ってみました。 (1)時間を登録するフォーム(input_view.php) <?php define(YEAR_LIMIT,1); // 何年先まで選択対象にするか設定。 // 選択用の年月日時分を作成 $now = time(); $year = date('Y', $now); $month = date('m', $now); $day = date('d', $now); $hour = date('H', $now); $minute = date('i', $now); ?> <html> <head> <title>input php</title> </head> <body> <form action="input.php" method="post"> <p> <!-- 年 --> <select name="year"> <?php for($i = $year; $i <= $year+YEAR_LIMIT; $i++) { if($i == $year) { echo "<option value=\"$i\" selected>".$i."</option>"; } else { echo "<option value=\"$i\">".$i."</option>"; } } ?> </select>年 <!-- 月 --> <select name="month"> <?php for($i = 1; $i <= 12; $i++) { if($i == $month) { echo "<option value=\"$i\" selected>".$i."</option>"; } else { echo "<option value=\"$i\">".$i."</option>"; } } ?> </select>月 <!-- 日 --> <select name="day"> <?php for($i = 1; $i <= 31; $i++) { if($i == $day) { echo "<option value=\"$i\" selected>".$i."</option>"; } else { echo "<option value=\"$i\">".$i."</option>"; } } ?> </select>日 <!-- 時 --> <select name="hour"> <?php for($i = 0; $i <= 23; $i++) { if($i == $hour) { echo "<option value=\"$i\" selected>".$i."</option>"; } else { echo "<option value=\"$i\">".$i."</option>"; } } ?> </select>時 <!-- 分 --> <select name="minute"> <?php for($i = 1; $i <= 59; $i++) { if($i == $minute) { echo "<option value=\"$i\" selected>".$i."</option>"; } else { echo "<option value=\"$i\">".$i."</option>"; } } ?> </select>分 </p> <input type="hidden" name="mode" value="write"> <input type="submit" value=" submit " /> </form> </body> </html> (2)フォームのデータを受け取り外部ファイルに時間を書き込むPHP(input.php) <?php // ファイル名設定 define(FILE_NAME, "time.txt"); if(strlen($_POST[mode]) && strcmp($_POST[mode],"write") == 0) { // POSTデータの受け取り $year = $_POST[year]; $month = $_POST[month]; $day = $_POST[day]; $hour = $_POST[hour]; $minute = $_POST[minute]; // 外部ファイルに書き込み $fp = fopen(FILE_NAME, "w"); fwrite($fp, $hour."\r\n".$minute."\r\n0\r\n".$month."\r\n".$day."\r\n".$year); fclose($fp); echo "時間設定完了しました。<br />"; echo "<a href=\"input.php\">戻る</a>"; } else { // 入力画面の表示。 require_once("input_view.php"); } ?> (3)時間を書き込むファイル(time.txt) このファイルは、空っぽのファイルを作るだけでいいです。 サーバー上にUP後、パーミッションを606か666等にすれば動きます。 (4)(3)のファイルと、アクセス時間とを計算しメッセージを表示するPHP(output.php) <?php // 待ち時間オーバー時のメッセージ設定 define(OVER_MESSAGE, "オーバー"); $message = ""; $time_array = file("time.txt"); $time = mktime($time_array[0],$time_array[1],$time_array[2],$time_array[3],$time_array[4],$time_array[5]); $now=mktime(); $timediff = $time - $now; if($timediff>0) { $hour =(int) ($timediff / 3600 ); $minute =(int) ($timediff % 3600 /60) ; $message = sprintf("%02d時間%02d分", $hour, $minute); $message = "残り待ち時間は<b>".$message."</b>です。"; } else { $message = OVER_MESSAGE; } echo $message; ?> 上記4ファイルをコピペなどで作成後、FTPアップしていただければ、動くと思います。 あとはメッセージを表示したい箇所にインラインフレームなどでoutput.php(名称変更可能)を読み込めんでいただければOKです。 待ち時間オーバー時のメッセージ設定は define(OVER_MESSAGE, "オーバー");のところをいじっていただければOKです。 簡単に作ったものなんで入力チェック等は省略してます。 また、時間を設定するPHPには簡単なアクセス制限を設けたほうがセキュリティ上好ましいと思います。 こういう作り方もあるよ・・というかんじですが参考になれば、と思います。 長文になりすみません。失礼します。

全文を見る
すると、全ての回答が全文表示されます。
  • bis_love
  • ベストアンサー率80% (4/5)
回答No.2

>HP上でお客様が今、来店したときに >どれくらいの待ち時間が必要か >HP上で確認できるようにしたいと思って というのを見ていると、PHPよりもjavascriptで処理したほうが簡単かな?という印象を持ちました。 指定時刻までのカウントダウン系のjavascriptはよくありますし。 そういうjavascriptを別ファイルで作って、HP上ではそのjavascriptを読み込めば終わりです。 待ち時間を更新するときは、その別ファイルのjavascriptの時間指定のところを書き換えてることで更新できます。 参考URLでは、カウントダウン、イベント表示のJavaScriptを作成してもらえます。 このツールで作ったjavascriptを、少しいじってもらえればやりたいことはできると思います。 ただ、javascriptに対応していない携帯とかだと使えないので、それだと困る場合は補足にてお伝えください。

参考URL:
http://www3.kcn.ne.jp/~tomate/JavaScript/CountDownMaker.html
全文を見る
すると、全ての回答が全文表示されます。
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

PHPで時間計算をする場合、リアルタイムに時計を動かすことは 難しいと思います、本当の待ち時間をみたいならそのたびに ページ更新してもらうことになるでしょう。 それを前提に・・・ 登録した時間は文字列で指定します。 それをstrtotime()でunix時間に直します。 今の時間はmktime()で得られますので、その差が待ち時間です。 <? $timestr="16:00"; $time=strtotime($timestr); $now=mktime(); $timediff=$time-$now; if($timediff>0){ $hour=(int) ($timediff / 3600 ); $minute=(int) ($timediff % 3600 /60) ; $second=(int) ($timediff % 60) ; printf("%02d:%02d:%02d", $hour, $minute, $second); }else{ print "over"; } ?>

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • データベースで取得した時間を何分前か計算

    質問失礼します。 データベースにタイムスタンプで更新した時間がわかるようにしているのですが、 その時間が今から 何分前 や 何時間前 何日前 か取得(計算)することは可能でしょうか? また、サイト上に更新時間を表示したいのですが、 PHPでも可能なのでしょうか?

  • javascriptでの時間計算

    教えて下さい。 工数集計プログラムをMySQL、PHP、javascriptを用いて開発しようと していますが、その中で、時間の計算をなんとかjavascriptで自動的 に計算させようと考えています。 1日データとして複数行(いくつかの工数)存在して、それぞれの行 で時間をプルダウン化し、選択されると同時に合計値が計算されるよう な事を考えています。 selectイベントか何かで取得し、計算させようかと考えていますが、 何か参考になるようなサンプルはないでしょうか。。 よろしくお願いします。

  • VB6での時間計算について

    VB6での時間計算について VB6で時間計算のプログラムを作成しています。 しかし、行き詰ってしまいました。 どなたかご教授願います。 3時50分から10時20分は何時間分経っているかという計算式で悩んでいます。 時間を打ち込み用にテキストボックスを4つ作ってまして、一つ目に「3」、二つ目に「50」、三つ目に「10」、四つ目に「20」という風に打ち込みコマンドボタンを押すと6.5時間と算出されテキストボックスかラベルに表示されるといったことをするにはどうしたらいいのでしょうか?

  • 年齢の計算方法

    みなさん、初めまして。 現在、PHP&MySQLで個人情報を登録できるサイトを 勉強を兼ねて作っています。 そこで、個人情報を閲覧する際に、登録された生年月日 から現在の満年齢を計算し表示できるようにしたい のですが、どうすればうまくできるのでしょうか? 生年月日はDATE型で2000-01-01のように登録されています。 できればロジックだけでなく、具体的なサンプルコード などがあれば大変助かります。 どうか宜しくお願いいたします。

    • ベストアンサー
    • PHP
  • 数値計算ができるようになりたいのですが…

    現在、大学院修士課程1年です。 将来はアカデミックな研究者を目指しています。 今行っている研究で、非線形方程式(多変数)の解を数値計算を用いて得たいと考えています。 今まで数値計算はやったことがないのでこれから勉強をはじめるところなのですが、少し悩んでいます。 今は数値計算に便利なMATLABのような市販ソフトがあることが分かっており、勉強すれば短時間で実際に研究につかうことができそうです。 しかし、やはり研究者を目指すなら、そのようなソフトに頼らず、しっかりと数値計算の理論を理解したうえで、FORTRANなどで自らプログラムを書くべきなのでしょうか。 良いアドバイスがありましたらよろしくお願いします。

  • accessの計算エラーについて教えて下さい

    accessで画面を更新、表示した値を元に計算を行う場合、タイミングによっては計算にエラ-が出ます(結果が0となる)。多分、画面が値を更新して表示するのに時間を要し、それまでは0もしくは空白となっていた数値を元に計算してしまうためだと思います。画面表示を待って計算に進むプログラミングの方法があれば教えて下さい。

  • プログラムを学ぶ順序

    HP製作のために、プログラムを学ぼうと考えています。 今のところ作りたいのは、掲示板などサーバ上で動く仕組みですので、PHPを検討していますが、はじめて学ぶ言語として適切でしょうか? PHPだと、雛形が用意されているため、結局は、プログラムについて深く学ぶことが出来ないと聞きます。 また、CやJAVAで出来ているため、これらを学んでおくとより自由度の高い使い方が出来るとも聞きます。 そこで、C、JAVA、PHPを学ぶ順序を聞きたいのですが、どうすればよいでしょうか?

  • 時間の取得

    phpにてデータの登録,更新を行うフォームを作りました。 mysqlは以下のsql文(抜粋)を rgist_date datetime NOT NULL default '0000-00-00 00:00:00', up_date datetime NOT NULL default '0000-00-00 00:00:00', としphpmyadminからインポートしています。 現状はphp側にて登録時間を // 登録時間 $regist_date =date("Y-m-d H:i:s"); // 更新時間 $up_date =date("Y-m-d H:i:s"); のように登録であればregist_dateをinsertするというような 形式なのですがmysql側にて時間を取得できないものかと思い 調べてみたのですがなかなか情報がみつからず質問させて 頂きました。 このようなことはやはりphp側でやるものなのでしょうか? 宜しくお願い致します。

  • エクセルで時間の計算して結果がマイナスになったら?

    お世話になります。 今、エクセルを使って、タイムカード計算の表を作成しております。 所定の労働時間があらかじめ決まっているため、そこから実際の勤務時間を差し引いた差を計算したいのですが、計算結果がマイナスになるときは「###########」とだけ表示されてしまいます。 エクセルでは時間をマイナスで表示することはできないのでしょうか? どうか教えてください。 お願いします

  • 素人が商業用HPつくれるまでの期間

    商業用HPはいままで2~3回ほどページ数5P~7Pで、業者 さんに5万~10万程度でつくってもらってきましたが、 更新を放棄、忘れ等でなかなか更新してくれません。有料のところは してくれるのですが、その分、料金がかさんでしまいます。 そこでHPを自分でつくっていこうかな、と思っています。 それほど高度なものでなくても良いですが、自分で作っていこうと する場合、HP製作初心者はどのくらいの期間が必要ですか? 1日の勉強時間は2~3時間はあてれれば、と思っています(無理 かもしれませんが)