PHP でヘルプ処理システムを作成する予定です。最後に顧客の問題に対応してからどれくらい時間が経ったのかを知る必要があることがわかりました。以前に ASP を使用したとき、この問題は非常に簡単に解決できました。ASP には、2 つの日付の間の月数、日数、秒数を取得できる対応する関数 DateDiff がありました。 PHP のマニュアルを検索したところ、PHP には同様の機能がないことがわかりました。
この記事には次の内容が含まれます:
1. 現在の日付と時刻を取得する方法は何通りありますか?
2. 日付の表示方法 - 日付と時刻の表示方法を変更します
3. 現在の日付を Unix タイムスタンプ値に変換します
4. 日付を変更します
a. 時間を追加します
b. 時間を減算します
c. 2 つの日付間の間隔を求めます
5. PHPにDateAdd関数を追加
6. PHPにDateDiff関数を追加
**現在の日付と時刻を取得します
Unix では、1970 年 1 月 1 日の 0:00 から経過した秒数を計算することで時刻を表現しており、これを UNIX タイムスタンプ (Unix Epoch) と呼びます。
次のようなコードがあるとします:
?
エコータイム();
?
値 958905820 を返します
この時の時刻は2000年5月21日12時43分。
それはかなり良いことだと言えるかもしれません。これではまったく役に立たない、またはほんの少ししか役に立たないとき。 PHP では、すべての日付処理関数で time() によって返されるタイムスタンプ値を使用する必要があります。同時に、PHP は Unix と Windows システムの両方で同じタイムスタンプ値を使用するため、コードを変更せずに異なるシステム間で PHP を移植できます。もう 1 つの利点は、time() 関数が整数を返すため、特別な日付/時刻フィールドを使用せずに、整数フィールドまたはテキスト フィールドとしてデータベースに格納できることです。
Unix タイムスタンプ値の基本を理解したところで、それらが実際に何に使用されるかを見てみましょう。
日付の表示方法を変更します - 日付と時刻の表示方法を変更します
PHP には、Unix タイムスタンプ値を有用なデータに変換する 2 つの方法が用意されています。 1 つ目は date() 関数です。この関数は 2 つのパラメータを取ります。最初の文字列は返したい形式を設定するために使用され、2 番目の文字列は Unix タイムスタンプ値です。
書式文字列では、単純な特殊な書式設定文字を使用して、表示したい形式で日付と時刻を表示します。日付を「18:01 Sunday 21 May」という形式で表示したいとします。
文字列の各部分に特別な書式設定文字を使用する必要があります。これは、PHP マニュアルの日付と時刻の関数ライブラリにあります。このような特殊な書式設定文字は、曜日、月の英語名、2 桁または 4 桁で表される年、午前 (AM) か午後 (PM) などを表します。この例に必要な特殊文字は次のとおりです:
「H」 - 24 時間形式の時間
「i」 - 分
「l」 - 曜日の完全な英語名
「d」 - 月の日
「F」 - 月の完全な英語名
したがって、フォーマット文字列は「Hhi l d F」で、PHP コードは次のようになります: