PHP-日付と時刻

デートは日常生活の一部であるため、考えずに一緒に仕事をすることが容易になります。PHPは、日付の操作を容易にする日付演算用の強力なツールも提供します。

time()でタイムスタンプを取得する

PHPの time()関数は、現在の日付と時刻について必要なすべての情報を提供します。引数は必要ありませんが、整数を返します。

time()によって返される整数は、1970年1月1日のグリニッジ標準時の午前0時から経過した秒数を表します。この瞬間はUNIXエポックと呼ばれ、それ以降に経過した秒数はタイムスタンプと呼ばれます。

<?php
   print time();
?>

これにより、次の結果が生成されます-

1480930103

これは理解するのが難しいものです。しかし、PHPは、タイムスタンプを人間が快適な形式に変換するための優れたツールを提供します。

getdate()を使用したタイムスタンプの変換

関数 getdate()オプションでタイムスタンプを受け入れ、日付に関する情報を含む連想配列を返します。タイムスタンプを省略すると、time()によって返される現在のタイムスタンプで機能します。

次の表に、getdate()によって返される配列に含まれる要素を示します。

シニア番号 キーと説明
1

seconds

分を過ぎた秒数(0-59)

20
2

minutes

時を過ぎた分(0-59)

29
3

hours

1日の時間(0〜23)

22
4

mday

月の日(1〜31)

11
5

wday

曜日(0〜6)

4
6

mon

年の月(1〜12)

7
7

year

年(4桁)

1997年
8

yday

曜日(0〜365)

19
9

weekday

曜日

木曜日
10

month

年の月

1月
11

0

タイムスタンプ

948370048

これで、日付と時刻を完全に制御できます。この日付と時刻は、任意の形式でフォーマットできます。

次の例を試してください

<?php
   $date_array = getdate();
   
   foreach ( $date_array as $key => $val ){
      print "$key = $val<br />";
   }
	
   $formated_date  = "Today's date: ";
   $formated_date .= $date_array['mday'] . "/";
   $formated_date .= $date_array['mon'] . "/";
   $formated_date .= $date_array['year'];
   
   print $formated_date;
?>

これにより、次の結果が生成されます-

seconds = 10
minutes = 29
hours = 9
mday = 5
wday = 1
mon = 12
year = 2016
yday = 339
weekday = Monday
month = December
0 = 1480930150
Today's date: 5/12/2016

date()を使用したタイムスタンプの変換

ザ・ date()関数は、日付を表すフォーマットされた文字列を返します。date()が返す形式に対して、渡す必要のある文字列引数を使用して、膨大な量の制御を実行できます。

date(format,timestamp)

date()は、省略された場合、オプションでタイムスタンプを受け入れ、現在の日付と時刻が使用されます。date()に渡されるフォーマット文字列に含めるその他のデータはすべて、戻り値に含まれます。

次の表に、フォーマット文字列に含めることができるコードを示します。

シニア番号 フォーマットと説明
1

a

'am'または 'pm'小文字

午後
2

A

「AM」または「PM」大文字

午後
3

d

月の日、先頭にゼロが付いた数値

20
4

D

曜日(3文字)

5

F

月名

1月
6

h

時間(12時間形式-先行ゼロ)

12
7

H

時間(24時間形式-先行ゼロ)

22
8

g

時間(12時間形式-先行ゼロなし)

12
9

G

時間(24時間形式-先行ゼロなし)

22
10

i

分(0〜59)

23
11

j

月の日(先行ゼロなし

20
12

l (Lower 'L')

曜日

木曜日
13

L

うるう年(はいの場合は「1」、いいえの場合は「0」)

1
14

m

年の月(数値-先行ゼロ)

1
15

M

月(3文字)

1月
16

r

RFC2822形式の日付

2000年12月21日木曜日16:01:07 + 0200
17

n

年の月(数値-先行ゼロなし)

2
18

s

時間の秒

20
19

U

タイムスタンプ

948372444
20

y

年(2桁)

06
21

Y

年(4桁)

2006年
22

z

曜日(0〜365)

206
23

Z

GMTからの秒単位のオフセット

+5

次の例を試してください

<?php
   print date("m/d/y G.i:s<br>", time());
   echo "<br>";
   print "Today is ";
   print date("j of F Y, \a\\t g.i a", time());
?>

これにより、次の結果が生成されます-

12/05/16 9:29:47
Today is 5 2016f December 2016 at 9:29 am

要件に応じて日付と時刻をフォーマットする方法について十分に理解していることを願っています。参考までに、すべての日付と時刻の関数の完全なリストは、PHPの日付と時刻の関数に記載されています。