PHP の日付と時刻の操作

angryTom
angryTom転載
2019-10-14 16:52:253123ブラウズ

日付と時刻は通常、プログラミング言語の表示および条件制限に使用されます。具体的には、特定の形式で時刻を表示したり、特定のタイムゾーンで時刻を表示したり、1週間後の時刻を取得したり、今週初めのタイムスタンプを取得したり、特定の形式の時刻を別の形式に変換したりすることができます。 、など待ってください。

1. 現在時刻を表示します

date 関数を使用します。形式は date(format[, timestamp]) で、2 つの値を受け入れます。パラメータ。最初のパラメータは時間形式の文字列で、2 番目のパラメータはタイムスタンプです。タイムスタンプはオプションです。入力しない場合は、現在の時刻のタイムスタンプになります。

echo date('Y-m-d H:i:s');  // 2018-12-25 09:31:22

このように、現在の年、月、日、時、分、秒を出力できます。もちろん、形式文字列に応じて他の形式で時刻を出力することもできます:

echo date('l dS \of F Y h:i:s A');  // Tuesday 25th of December2018 09:34:54 AM

上記で使用されている内容を説明します。 フォーマット文字:

Y 完全な年、4 桁

m 先頭に 0

が付いた月

d 先頭に 0

を付けた日付。先頭に 0

# を付けた 24 時間形式の時間

#i 分 (先頭に 0 が付きます)

s 秒 (先頭に 0

l が付きます) この日の完全な英語版週 (大文字の i ではなく、小文字の L に注意してください)

S 月の日数の接尾辞 (st、nd、rd、th の場合もあります)

#F 今月の完全な英語

#h 先頭に 0

を付けた 12 時間制#A 午前または午後 (AM または PM)

これは単なるリストです。一部については、より完全な書式文字については公式マニュアルを確認してください。

2. 特定のタイム ゾーンで世界を表示する

たとえば、タイム ゾーンを設定すると、現在の時刻を取得できます。米国:
date_default_timezone_set("America/New_York");
echo date('Y-m-d H:i:s');  // 2018-12-24 20:54:36

上記は米国ニューヨークの世界です。タイムゾーンに必要な文字列については、PHP ドキュメントを確認してください。不正な場合は、警告が生成されます。時刻を指定すると、タイム ゾーンは正常に設定されませんが、デフォルトのタイム ゾーンが使用されます。

3. 計算された時間

たとえば、今週の初めの時間、今月の初めの時間、1 日後の時間週など、これを行うには strtotime 関数を使用できます。

strtotime(time[, now = time()]) は、時刻と日付を説明する任意の文字列を UNIX タイムスタンプに変換できます。最初のパラメータは説明文字列で、2 番目のパラメータはタイムスタンプの計算に使用されます (デフォルト現在のタイムスタンプに)。説明から、これが非常に柔軟な関数であることがわかりますが、結局は関数であることに注意してください。時間を表す「任意の」文字列を理解できるほどスマートではありません。それでも、特定の形式が必要です - 特に中国、「2018 年 12 月 25 日」が何を意味するか理解できるとは期待しないでください。しかし、それでも非常に強力であり、前述したすべての機能を実行できます。

echo '下个星期的时间:' . date('Y-m-d H:i:s', strtotime('+1 week'));  // 下个星期的时间:2019-01-01 10:12:16
echo '本周开始时间:' . date('Y-m-d H:i:s', strtotime('this week Monday'));  // 本周开始时间:2018-12-24 00:00:00
echo '明天开始时间:' . date('Y-m-d 00:00:00', strtotime('+1 day'));  // 明天开始时间:2018-12-26 00:00:00
echo '1天2小时3分5秒之后的时间:' . date('Y-m-d H:i:s', strtotime('+1 day 2 hours 3 minutes 5 seconds'));  // 1天2小时3分5秒之后的时间:2018-12-26 12:24:15

4. 特定の値に基づいて時刻を作成します

年、月、日、時、分、秒がわかっている場合特定の時刻の時刻を作成するためにそれらを使用したい場合は、それらを時刻文字列に結合し、strtotime を使用して解析することを選択できます。または、この場合は、より信頼性の高い方法である mktime を使用することもできます。

mktime(時、分、秒、月、日、年) パラメータの順序は、時、分、秒、月、日、という私たちの習慣と同じではないことに注意してください。 year

$time = mktime(3, 10, 15, 2, 15, 2014);
echo date('Y-m-d H:i:s', $time);  // 2014-02-15 03:10:15

5. オブジェクト型の時間操作

php はオブジェクト型の時間操作もサポートしています
$date_obj = date_create();  // 创建一个DateTime对象
echo $date_obj->format('Y-m-d H:i:s');  // 2018-12-25 10:45:08
 
date_add($date_obj, date_interval_create_from_date_string("3 days"));  // 给对象增加3天
echo $date_obj->format('Y-m-d H:i:s');  // 2018-12-28 10:45:08
 
date_sub($date_obj, date_interval_create_from_date_string("2 days"));  // 给对象减少2天
echo $date_obj->format('Y-m-d H:i:s');  // 2018-12-26 10:45:08
 
echo '时区为:' . timezone_name_get(date_timezone_get($date_obj));  // 时区为:PRC (中国时区,获取时区并打印)

手続き型とは異なりますが、実装可能です。実際の機能は非常に似ています。

PHP 関連の知識の詳細については、
PHP 中国語 Web サイト

をご覧ください。

以上がPHP の日付と時刻の操作の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はwww.kanoseo.cnで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。