ホームページ  >  記事  >  バックエンド開発  >  PHPで現在時刻を取得する方法

PHPで現在時刻を取得する方法

爱喝马黛茶的安东尼
爱喝马黛茶的安东尼オリジナル
2019-08-30 10:00:0715416ブラウズ

PHPで現在時刻を取得する方法

1. 現在のタイムスタンプを取得します

方法 1: 時間を経過する関数

time();

方法 2: $_SERVER の REQUEST_TIME 要素を使用する

$_SERVER['REQUEST_TIME'];

方法 3: strtotime 関数を使用する

strtotime('now');

2. 現在時刻を取得する

日付関数の形式 Timestamp

echo date('Y-m-d h:i:s', time()); // 2018-10-3 15:57:05

3. タイム ゾーンの問題

上記の方法にはすべてタイム ゾーンの問題があり、具体的な解決策:

方法 1: php.ini を変更する 中国のタイム ゾーンを設定する

date.timezone = PRC

方法 2: php ファイルに中国のタイム ゾーンを一時的に設定する

date_default_timezone_set('PRC');

関連する推奨事項: 「PHP チュートリアル

php は現在の時刻とタイムスタンプを取得します

最初に知っておく必要があることは、php で時刻を取得するメソッドは date() であり、メソッドは次のとおりです。 PHPでタイムスタンプを取得するには、time()とstrtotime()を使用します。以下にそれぞれ説明します:

date() 形式は: date($format, $timestamp)、format は形式、timestamp はタイムスタンプ (オプション) です。

time() は、引数なしで現在の時刻の Unix タイムスタンプを返します。

strtotime($time, $now) 英語テキストの日時記述を Unix タイムスタンプに解析します。 $time は必須で、解析する時刻文字列を指定します。$now は戻り値のタイムスタンプを計算するために使用されます。このパラメータを省略した場合は、現在の時刻が使用されます。

date($format) 使用例:

echo date('Y-m-d');输出结果:2018-10-03
echo  date('Y-m-d H:i:s');输出结果:2018-10-03 23:00:00
echo  date('Y-m-d', time());输出结果:2018-10-03 23:00:00(结果同上,只是多了一个时间戳参数)
(时间戳转换为日期格式的方法)
echo  date('Y').'年'.date('m').'月'.date('d').'日',输出结果:2018年10月3日

これらはほんの数例であり、形式が変更されているだけです。文字列形式の各文字の意味は次のとおりです。 :

a - 「午前」または「午後」

A - 「午前」または「午後」

d - 日、2 桁未満の場合は 2 桁の場合数字は数字で、前にゼロを追加します。例: "01" ~ "31"

D - 曜日、3 つの英語の文字。例: "Fri"

F -月、完全な英語名。例: " January"

h - 12 時間形式の時間。例: "01" から "12"

H - 24 時間形式の時間形式; 例: "00" ~ "23"

g - 12 時間形式の時間。2 桁未満の場合はゼロを追加しないでください。例: "1" ~ 12"

G - 24 時間形式の時間。2 桁未満の場合はゼロを追加しないでください。例: "0" ~ "23"

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"

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');输出结果:1332427715(此处结果为随便写的,仅作说明使用)
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 week'));输出结果:2012-03-29 23:30:33(下个星期此时的时间)
echo date('Y-m-d H:i:s',strtotime('next Thursday'));输出结果:2012-03-29 00:00:00(下个星期四此时的时间)
echo date('Y-m-d H:i:s',strtotime('last Thursday'));输出结果:2012-03-15 00:00:00(上个星期四此时的时间)

上記の例はすべてです。自分でさらに勉強してください。strtotime() メソッドは、英語のテキストを通じて Unix タイムスタンプの表示を制御して、必要なタイムスタンプを取得できます。 time.Date format.

php 現在時刻のミリ秒数を取得します

php 自体にはミリ秒数を返す関数はありませんが、配列には 2 つの要素が含まれています: 1 つは秒数で、もう 1 つは 10 進数で表されたミリ秒数です。このメソッドを通じて返されるミリ秒数を取得できます。このメソッドは次のとおりです。

function getMillisecond(){
    list($s1,$s2)=explode(' ',microtime());
    return (float)sprintf('%.0f',(floatval($s1)+floatval($s2))*1000);

現在時刻と実際にかかった時間は 8時間の時差を解決します

実際の開発では、取得した時間が現在のシステムの時刻が実際の時刻と 8 時間異なっています。これはタイムゾーンの設定の問題が原因です。この問題には次のようないくつかの解決策があります:

1. php で date.timezone を見つけます。 ini を編集し、その値を Asia/Shanghai に変更します。つまり、date.timezone = Asia/Shanghai (現在のタイムゾーンをアジアの上海タイムゾーンに設定します)

2. date_default_timezone_set('Asia/Shanghai'); を追加します。プログラムの冒頭で。

以上がPHPで現在時刻を取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。