生理周期情報を取得するPHP関數(shù)
日付関數(shù)を正式に學(xué)ぶ前に、誰もがいくつかの概念を理解する必要があります:
1. タイムゾーン
2. 世界時
3. Unix タイムスタンプ
タイムゾーン
誰もがこの概念について聞いたことがあるでしょう。たくさんの前に。私たちが実生活で使用する実際の領(lǐng)域もコンピューター內(nèi)で規(guī)制されています。
1884年にワシントンで國際経度會議が開催されたとき、時間の混亂を克服するために、世界を24のタイムゾーンに分割することが規(guī)定されました。
中國では、首都北京がある東巴區(qū)の時間が國家統(tǒng)一時として採用されています。
ユニバーサルタイム
グリニッジタイム(英語の略稱:GMT)を使用するのは天文學(xué)者だけでなく、この用語はニュース新聞にも頻繁に登場します。どこにでも現(xiàn)地時間があることを私たちは知っています。主要な國際イベントを記録するために現(xiàn)地時間を使用すると、複雑で不便になります。そして時間が経てば経つほど間違いを犯しやすくなります。そこで、天文學(xué)者は、グリニッジ (英國のある地域) の現(xiàn)地時間を標準として使用する、誰にとっても受け入れられ便利な記録方法を提案しました。
unix タイムスタンプ
計算を容易にするために、コンピューター自體に時刻が設(shè)定されています。そこで、Unix タイムスタンプという計算方法を指定しました。
Unix エポック (1970 年 1 月 1 日 00:00) からの経過秒數(shù)。
いくつかの概念を?qū)W習したので、時間関數(shù)の學(xué)習を開始できます。
1. タイムゾーンを設(shè)定する
多國籍多言語プログラムの場合、通常、プログラムを?qū)g行するたびに設(shè)定ファイルにタイムゾーンを書き込みます。タイムゾーンの設(shè)定を読み込んで時刻を表示します。
タイムゾーンを設(shè)定する関數(shù)は次のとおりです:
1).date_default_timezone_get()
2).date_default_timezone_set()
最初の関數(shù)には焦點を當てません。これは比較的単純です。
使用法は次のとおりです:
string date_default_timezone_get (void)
関數(shù)は次のとおりです:
スクリプト內(nèi)のすべての日付と時刻の関數(shù)で使用されるデフォルトのタイムゾーンを取得します
例:
<?php echo date_default_timezone_get (); ?>
これは、現(xiàn)在設(shè)定されている時刻。
2 番目の関數(shù)が重要なポイントです:
使用法は次のとおりです:
bool date_default_timezone_set ( string $timezone_identifier )
関數(shù)は次のとおりです:
すべての日時関數(shù)のデフォルトのタイムゾーン
例:
<?php //定義一下時區(qū)常量,以后你可以放到配置文件里 define('TIME_ZONE','Asia/shanghai'); //執(zhí)行函數(shù) date_default_timezone_set(TIME_ZONE); echo date('Y-m-d H:i:s'); ?>
上記の例のコードを比較し、date_default_timezone_set をコメントアウトして、どのようなプロンプトが表示されるかを確認してください。
注:
タイムゾーンのリストについては、公式マニュアル http://php.net/manual/zh/timezones.php
2.time() を參照して、現(xiàn)在の UNIX タイムスタンプを取得してください
time( ) 関數(shù) function 現(xiàn)在時刻の Unix タイムスタンプを取得します。
次のコードは、現(xiàn)在の時刻の Unix タイムスタンプを出力します。
<?php $time=time(); print_r( $time); ?>
プログラム実行結(jié)果:
1421597858
3. PHPの時間処理學(xué)習の鍵は「Flax fall」です
Y 英語は年を表す year - Asia
m 英語は月を表す month —— Ma
d は英語で day を表し、日付 - fall
を表します。したがって、前年、月、日を出力する必要があります。例: 1997 年 7 月 1 日には、上記の 3 つのパラメータを使用できます。
<?php echo date('Y年m月d日'); ?>
コードを?qū)g行して、表示されるかどうかを確認してください。
の後にはいくつかのパラメータがあります:
H:m:s は時、分、秒を表します
hは英語で時間です
iは英語で分です
sは英語で秒です 秒を表します
<?php //就可以顯示出來當前的時間了喲。 echo date('Y-m-d H:i:s'); ?>
date 関數(shù)は、時刻の表示や保存を容易にするために時刻を書式設(shè)定して出力するために使用されます。構(gòu)文形式は次のとおりです:
string date ( string $forrnat [, int $tirnestamp] )
パラメーター リスト內(nèi):
$timestamp はタイムスタンプであり、関數(shù)はこのタイムスタンプを $format で指定された形式で出力します。
$timestamp に入力値がない場合、デフォルトで現(xiàn)在時刻が設(shè)定されます。
$format は時刻出力形式の文字列であり、出力形式を構(gòu)築するには指定された文字を使用する必要があります。
日付関數(shù)のパラメータテーブルのフォーマット:
文字 | 説明 | 戻り値 |
---|---|---|
d | 日付、先行ゼロ付きの2桁 | 01から31 |
D | 英語曜日、3文字 | Mon to Sun |
j | 月の日付、先頭ゼロなし | 1から31 |
l (文字) | 英語の曜日 | 日曜日から土曜日 |
N | 1形式の數(shù)字は曜日を表します | 1(月曜日を意味します)から7(日曜日を意味します) |
S | 各月の日數(shù)の後の英語の接尾辭、2文字 | st、nd、rd、または th。 jgと一緒に使えます |
w | 曜日、數(shù)字は | 0(日曜日を意味します)から6(土曜日を意味します) |
z | 年間の曜日 | 0?を表します366 |
W | 年間週、週は月曜日から始まります | 42 (年間第42週) |
F | 月、全文形式 | 1月から12月 |
m | 數(shù)字は月を表し、先頭にゼロが付きます | 01から12 |
M | 月を表す3文字の略語 | 1月から12月 |
n | 數(shù)字は月を表し、先頭にゼロはありません | 1 to 12 |
t | 特定の月の日數(shù) | 28 to 31 |
L | 閏年かどうか | 閏年の場合は1、それ以外の場合はは o |
o | 年の數(shù)値をフォーマットします | 例: 2007 |
Y | 年を完全に表す 4 桁 | 例: 2008 |
y | 2桁から年を表します | 例: 99 または 08 |
a | 小文字のAMとPMの値 | amまたはpm |
A | 大文字のAMとPMの値 | AMまたはPM |
g | 時間、12 時間形式、先頭のゼロなし | 1 ~ 12 |
G | 時間、24 時間形式、先頭のゼロなし | 0 ~ 23 |
i | 先頭付きゼロ | 00?59 |
s | 先頭にゼロが付いた秒 | 00?59 |
e | タイムゾーン識別子 | |
U | Unix エポックからの秒數(shù) | 長整數(shù) |
3. getdate は現(xiàn)在のシステム時間を取得します
getdate は、現(xiàn)在のシステム時間を取得するか、タイムスタンプの特定の意味を取得するために使用されます。タイムスタンプは長整數(shù)で、getdate の構(gòu)文形式は次のとおりです。
array getdate ([ int $timestamp = time() ] )
関數(shù)の戻り値は、タイムスタンプに基づいて取得された時刻情報を含む配列です。パラメータがない場合は、現(xiàn)在の時刻が返されます。 getdate によって返される配列、キー名には時刻と日付の完全な情報が含まれます。
キー名 | 説明 | 戻り値 |
---|---|---|
secnods | Seconds | 數(shù)値0から59 |
分 | 分 | 0から59までの數(shù)字 |
時間 | 時間 | 數(shù)字0から23 |
mday | 曜日 | 數(shù)字1から31 |
wday | 曜日 | 數(shù)字0(日曜日を意味します)土曜日) |
月 | 月 | 數(shù)字1から12 |
年 | 4桁の數(shù)字表現(xiàn) | |
yyday | 年の數(shù)字の數(shù) | 數(shù)字0?365 |
平日 | 日曜日から土曜日 | |
英語での月 | 1月から12月 | |
Unix時代の始まりからの秒 | long整數(shù) |
次のコードは、getdate 配列の詳細情報を返すことができます。
<?php $mytime=getdate(); print_r( $mytime); ?>
print_rは、すべてのキー名と値を配列で出力できます。このコードを?qū)g行すると、結(jié)果は以下のようになります。プログラムは、現(xiàn)在のコンピューターの時刻と日付の詳細を出力します。
Array ( [seconds] => 1 //秒 [minutes] => 10 //分鐘 [hours] => 17 //小時 [mday] => 18 //日 [wday] => 0 //星期中的第幾天 [mon] => 1 //月 [year] => 2015 //年 [yday] => 17 //年中的第幾天 [weekday] => Sunday //星期 [month] => January //月份 [0] => 1421597401 //時間戳 )
getdate 関數(shù)と返された配列を理解すると、現(xiàn)在の時刻情報を簡単に取得できます。次のコードは、getdate 関數(shù)を使用して時刻情報を取得し、返された時刻配列の値を呼び出して時刻情報を出力します。
<?php $mytime = getdate(); echo "年 :".$mytime['year']."\n"; echo "月 :".$mytime['mon']."\n"; echo "日 :".$mytime['mday']."\n"; echo "時 :".$mytime['hours']."\n"; echo "分 :".$mytime['minutes']."\n"; echo "秒 :".$mytime['seconds']."\n"; echo "一個小時中的第幾鐘 :".$mytime['minutes']."\n"; echo "這是一分鐘的第幾秒 :".$mytime['seconds']."\n"; echo "星期名稱 :".$mytime['weekday']."\n"; echo "月份名稱 :".$mytime['month']."\n"; echo "時間戳 :".$mytime[0]."\n"; ?>
このアプリを?qū)g行すると、現(xiàn)在時刻の詳細情報が表示されます。プログラムを?qū)g行した結(jié)果は次のようになります。
年: 2015月: 1日: 18
時: 17
分: 14
秒: 11
曜日: 14
年間の曜日: 11
曜日: 日曜日
月の名前: 1月
タイムスタンプ: 1421597651