PHP 開発では、時間処理は非常に一般的な要件です。文字列形式の時刻をタイムスタンプに変換する必要がある場合や、タイムスタンプを読み取り可能な形式に変換する必要がある場合があります。もちろん、時、分、秒を秒に変換する必要もよくあります。では、この変換を達成するにはどうすればよいでしょうか?この記事ではいくつかの実装方法を紹介します。
方法 1: strtotime 関数
PHP 組み込み関数strtotime()
人間が判読できる日付と時刻の文字列を UNIX タイムスタンプに解析できます。この関数に基づいて、時、分、秒を秒に変換できます。具体的な実装コードは以下の通りです。
function hmsToSeconds($hms) { $seconds = strtotime("1970-1-1 $hms UTC"); return date('H:i:s', $seconds); }
このうち、$hms
は時、分、秒であり、形式はH:i:s
となります。たとえば、11:00:30
。まず、時、分、秒、および UNIX 時点 (1970-1-1) を完全な時刻文字列に連結し、次に strtotime()
関数を使用してそれを UNIX タイムスタンプに変換します。最後に、変換された秒を時、分、秒にフォーマットして出力します。
strtotime()
関数はデフォルトで現在のタイムゾーンを使用するため、UTC
タイムゾーンを使用するように関数を設定する必要があることに注意してください。時差が発生する可能性があり、秒の計算にエラーが発生しました。
方法 2:explode 関数
strtotime()
関数の使用に加えて、explode()
関数を使用して変換することもできます。時、分、秒の文字 文字列は :
に従って分割され、各部分が秒に変換され、加算されて合計秒数が取得されます。具体的な実装コードは以下の通りです。
function hmsToSeconds($hms) { list($hours, $minutes, $seconds) = explode(':', $hms); return $hours * 3600 + $minutes * 60 + $seconds; }
このうち、list()
関数は、explode()
関数で取得した配列要素を代入する関数です。対応する変数。時間、分、秒の 3 つの要素を 3 つの変数 $hours
、$mins
、$秒
に代入し、秒に変換します。を追加し、合計秒数を取得します。
時、分、秒の文字列の特定の部分が奇数の場合 (01
など)、先頭に文字列が含まれていないことを確認する必要があることに注意してください。関数に渡すときにゼロを指定しないと、8 進数として解析される可能性があり、エラーが発生します。
方法 3: DateTime クラス
組み込み関数の使用に加えて、PHP が提供する DateTime
クラスを使用して時、分、秒を変換することもできます。合計秒数に。具体的な実装コードは次のとおりです。
function hmsToSeconds($hms) { $time = date_create_from_format('H:i:s', $hms); return $time->getTimestamp() - strtotime('today'); }
まず、date_create_from_format()
関数を使用して、$hms
を H:i:s# にフォーマットします。 ## 時間オブジェクト。次に、
getTimestamp() メソッドを使用してオブジェクトに対応する UNIX タイムスタンプを取得し、今日の 0:00 の UNIX タイムスタンプを減算して、0:00 からの相対的なこの時刻の合計秒数を取得します。今日。
date_create_from_format() は
DateTime オブジェクトを返すため、タイムスタンプ値を取得するにはオブジェクトのメソッドを使用する必要があることに注意してください。
strtotime() および
explode() を使用することも、
DateTime クラスを使用して、さまざまなメソッドで変換を行うこともできます。なお、変換方法によっては、正確性、合法性、使用の難易度などに一定の違いがあり、状況に応じて最適な変換方法を選択する必要があります。
以上がPHPで時、分、秒を秒に変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。