0

PHPを使用して、減算/マイナスを2回したいと思います。毎回別のドキュメント内で、その後phpに結果(2回を減算した後の結果)を別の単一のテキストドキュメント内またはHTMLタグなしのテキストのみのhtmlドキュメント内に書き込みます。この 2 つの時間を差し引くと、このスクリプトが使用されるゲームを特定のプレーヤーがプレイした時間が決まります。また、スクリプトは 2 回減算する必要があると述べていますが、これは実際には 1 人のプレイヤーの場合であるため、全体としては 2 回以上減算する必要があります。実際にゲームをプレイする人数によって異なります。

以下を見ると、これはプレーヤーのユーザー名とプレーヤーの現地時間を含むテキスト ファイルであり、その後にこの場合には関係のない他の数字が続きます。

テキスト ファイルは「begin.txt」と呼ばれます。

「AULLAH1」「2010 年 1 月 7 日 15:28」「55621454」「123456」「123456.00」

「ユーザー名」「2010 年 7 月 3 日午後 6 時 21 分」「55621454」「123456」「123456.00」

「AULLAH1」「2010 年 7 月 7 日 15:05」「55621454」「189450」「123456.00」

「SUPREMEGAMER」「2010 年 7 月 8 日午後 6 時 42 分」「55621454」「123456」「123456.00」

このプレイヤーは 2 回ゲームをプレイしたため、ユーザー名のエントリとして「AULLAH1」が 2 つあります。最初の行の次のエントリは「2010/01/07 15:28」で、「AULLAH1」という人物の日付と現在の時刻です。日付と時刻の後のその他のデータは無関係であるため、無視できます。

「end.txt」というタイトルの別のテキスト ドキュメント内には、前のテキスト ファイルと同じ形式の次のデータがあります。

「AULLAH1」「2010 年 1 月 7 日 15:54」「55621454」「123456」「123456.00」

「ユーザー名」「2010 年 7 月 3 日午後 6 時 49 分」「55621454」「123456」「123456.00」

「AULLAH1」「2010 年 7 月 7 日 15:32」「55621454」「189450」「123456.00」

このテキスト ファイル内の違いは、「SUPREMEGAMER」というタイトルのプレーヤーが存在しないことです。このプレーヤーはゲームを終了できなかったからです。また、ゲームを終了したユーザーの時間は異なります。プレイヤー "AULLAH1" もこのゲームを 2 回終了したため、2 回リストされています。

PHPスクリプトでend.txtファイルでユーザー名「AULLAH1」の最後のエントリを検索し、その後の行全体を再度取得して、begin.txtから「AULLAH1」の最後のエントリを検索し、時間を減算します. 差し引いたら、ユーザー名と時刻を別のテキスト ドキュメント内、または HTML タグのないテキストのみの HTML ドキュメント内に記述したいと思います (前述のとおり)。したがって、これはユーザー「AULLAH1」の再生時間のみを表示するため、end.txt ドキュメント内のすべてのユーザー名に対してこのプロセスを実行したいと考えています。

すべての支援に感謝します。返信をお待ちしております。ありがとうございました。:) 私が何かを明確に説明していない場合、および/またはより詳細に説明してほしい場合は、返信してください. :)

4

1 に答える 1

1

ここで検索するテキストファイルについては説明しません。最終的に、開始時刻と終了時刻を一緒に取得するとします。2つの違いを理解するのはとても簡単です。

(注目すべきは、時刻が逆になっていると思います。「end」ファイルの時刻は常に「begin」ファイルの時刻よりも短いため、おそらく正しくありません。さらに、日付をDDに保存しているようです。 / MM / YYYY形式。これは、13日より前の日はあいまいになる可能性があるため、私の例では正しく解析されない可能性があります。代わりに、完全にあいまいでないYYYY-MM-DD形式で保存することをお勧めします。)

これが方法1で、プレーンな古いUNIXタイムスタンプを使用します。

// First we have our times in a human readable format. 
// Let's make them into unix timestamps
$start_time = strtotime('01/07/2010 15:28');
$end_time = strtotime('01/07/2010 15:54');
$difference_in_seconds = $end_time - $start_time;
// If you need the difference in minutes or hours, you'll need to 
// do the math yourself.
echo "That turn took {$difference_in_seconds} seconds to complete.";

これが方法2で、PHPの新しいDateTimeクラスとDateIntervalクラスを使用します。これは、PHP5.3以降でのみ機能します。

// We have our times in human readable format.
// Let's make them into DateTimes
$start_time = new DateTime('01/07/2010 15:28');
$end_time = new DateTime('01/07/2010 15:54');
$interval = $end_time->diff($start_time, true);
echo "That turn took " . $interval->format('%h hours, %i minutes and %s seconds.');
于 2010-07-17T17:05:00.607 に答える