PHPの時間操作方法まとめ
PHP で現在時刻を取得するにはどうすればよいですか?
PHP で現在のタイムスタンプを取得するにはどうすればよいですか?
最初に知っておく必要があるのは、PHP で時刻を取得するメソッドは date() であり、PHP でタイムスタンプを取得するメソッドは time() と strtotime() であるということです。
以下は別途説明します。 date() の形式は次のとおりです: date($format, $timestamp)。format は形式、timestamp はタイムスタンプ (オプション) です。 time() は、引数なしで現在の時刻の Unix タイムスタンプを返します。 strtotime($time, $now) 英語テキストの日時記述を Unix タイムスタンプに解析します。 $time は必須で、解析する時刻文字列を指定します。$now は、戻り値のタイムスタンプを計算するために使用されます。このパラメータが省略された場合は、現在の時刻が使用されます。日付($format)の使用例:
echo date('Y-m-d'); 出力結果: 2012-03-22
echo date('Y-m-d H:i:s'); 出力結果: 2012-03-22 23:00:00
echo date('Y-m-d', time()); 出力結果: 2012-03-22 23:00:00 (タイムスタンプパラメータが追加されている点を除いて、結果は上記と同じです) (タイムスタンプの変換方法)現在までの形式)
echo date('Y').' Year'.date('m').'Month'.date('d').'Day'、出力結果: 2012 年 3 月 22 日
これらはほんの数例であり、単なる形式の変更です。文字列形式の各文字の意味は次のとおりです: a - "am" または "pm"
A - 「午前」または「午後」
d - 日、2 桁。2 桁未満の場合は、前にゼロを追加します。例: "01" から "31"
D - 曜日、「Fri」などの 3 文字。
F - 月、完全な英語名 (例: " January"
)
h - 12 時間形式の時間 例: "01" から "12"
H - 24 時間形式の時間 例: "00" から "23"
g - 12 時間形式の時間。「1」から「12」のように 2 桁未満の場合はゼロは追加されません。
G - 24 時間形式の時間。「0」から「23」など、2 桁未満の場合はゼロは追加されません。
i - 分; 例: "00" から "59"
j - 日、2 桁。2 桁未満の場合は、ゼロを追加しないでください。例: "1" から "31"
l - 曜日、完全な英語名 (例: "Friday"
)
m - 月、2 桁。2 桁未満の場合は、「01」から「12」のように先頭にゼロを追加します。
n - 月、2 桁。2 桁未満の場合は、「1」から「12」のようにゼロは追加されません。
M - 月、3 つの英語の文字: "Jan"
s - 秒: "00" ~ "59"
S - 単語の末尾に英語の序数、「th」、「nd」などの 2 つの英文字を追加します。
t - 指定した月の日数: "28" ~ "31"
U - 合計秒
w - 数値による曜日。例: 「0」 (日曜日) ~ 「6」 (土曜日)
Y - 年、4 桁の数字: "1999"
y - 年、2 桁の数字 (例: "99"
)
z - 年間の日: 「0」から「365」 time() の使用例:
time(); 出力結果: 1332427715 (返される結果は現在のタイムスタンプです) strtotime($time) 使用例: echo strtotime('2012-03-22'); (ここでの結果は次のようになります)カジュアルに、説明のみを目的としています)
echo strtotime(date('Y-d-m')); 出力結果: (date() と組み合わせると、結果は上記と同じになります) (時刻と日付はタイムスタンプに変換されます)
strtotime() には、数字、年、月、日、週の英文字の操作にパラメータを追加することもできます。例は次のとおりです。
echo date('Y-m-d H:i:s',strtotime('+1 day')); 出力結果:2012-03-23 23:30:33 (明日のこの時刻が出力されます)
echo date('Y-m-d H:i:s',strtotime('-1 day')); 出力結果: 2012-03-21 23:30:33 (昨日のこの時刻)
echo date('Y-m-d H:i:s',strtotime('+1週間')); 出力結果: 2012-03-29 23:30:33 (来週の今頃の時刻)
echo date('Y-m-d H:i:s',strtotime('次の木曜日')); 出力結果: 2012-03-29 00:00:00 (来週木曜日のこの時刻)
echo date('Y-m-d H:i:s',strtotime('last Wednesday')); 出力結果: 2012-03-15 00:00:00 (先週の木曜日のこの時刻) 上記の例は以上です。 strtotime() メソッドは、英語のテキストを通じて Unix タイムスタンプの表示を制御し、必要な時刻と日付の形式を取得できます。
PHP は現在の時刻のミリ秒数を取得します。PHP 自体はミリ秒数を返す関数を提供しませんが、2 つの要素を含む配列を返す microtime() メソッドを提供します。1 つは秒数、もう 1 つは秒数です。 other は 10 進数で表されるミリ秒数です。返されるミリ秒は、次のようにこのメソッドで取得できます。
function getMillisecond(){<br /> list($s1,$s2)=explode(' ',microtime());<br /> return (float)sprintf('%.0f',(floatval($s1)+floatval($s2))*1000);<br /> }取得した現在時刻と実際の時刻が8時間違う場合の解決方法 実際の開発では、タイムゾーンのせいで取得した時刻が実際のシステム時刻と8時間違うことがよくあります。この問題には、次のようないくつかの解決策があります:
1. php.ini で date.timezone を見つけ、その値を Asia/Shanghai に変更します。つまり、date.timezone = Asia/Shanghai (現在のタイムゾーンをアジアの上海タイムゾーンに設定します)
2. プログラムの先頭に date_default_timezone_set('Asia/Shanghai'); を追加します。
これで、PHP で現在時刻、タイムスタンプ、ミリ秒、時差を取得する方法の概要は終わりです。ご不明な点がございましたら、メッセージを残して修正してください。