English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

PHP 基礎教程

PHP 高级教程

PHP & MySQL

PHP 参考マニュアル

PHP 日付と時間

このチュートリアルでは、PHPで日付と時間を抽出したり形式化する方法を学びます。

PHP Date()関数

PHPのdate()関数は、タイムスタンプをより読みやすい日付と時間に変換します。

コンピュータは、ユニックス纪元から(グリニッジ標準時を基準に)始まる日付と時間をユニックスタイムスタンプの形式で保存します。1970年1月1日午夜,即1970年1月1日00:00:00 GMT)开始的秒数为单位进行测量。

由于这种格式对于人类来说是不人性化的,PHP 将时间戳转换为人类可读的格式,并将日期从您的符号转换为计算机能够理解的时间戳。函数的语法可以使用。

date(format, timestamp)

date()函数中的format参数是必需的,用于指定返回的日期和时间的格式。但是,timestamp是可选参数,如果不包括在内,则将使用当前日期和时间。以下语句显示今天的日期:

<?php
$today = date("d/m/Y");
echo $today;
?>
テストをしてみる‹/›

注意:PHP date()函数根据执行脚本的Web服务器的内置时钟返回当前日期和时间。

用PHP格式化日期和时间

date()函数的format参数实际上是一个可以包含多个字符的字符串,它允许您生成一个包含日期和时间的各种组件的日期字符串,如星期几、上午或下午等。下面是格式字符串中常用的一些与日期相关的格式化字符:

  • d - 表示每月的第几天;前导为零两位的数字(01 或 31)

  • D - 表示星期几缩写(周一到周日)

  • m - 表示月份,带有前导零的数字(01 或 12)

  • M - 表示月份缩写(Jan 到 Dec)

  • y - 用两位数字表示年份(08 或 14)

  • Y - 四位数字表示年份(2008 或 2014)

可以通过插入其他字符(例如连字符(-),点(.),斜杠(/)或空格)来分隔日期的各个部分,以添加其他视觉格式。

<?php
echo date("d",/m/Y") . "<br>";
echo date("d",-m-Y") . "<br>";
echo date("d.m.Y");
?>
テストをしてみる‹/›

提示:您可以使用PHP date()函数自动更新网站上的版权声明,例如:Copyright © 2010-<?php echo date("Y")?>.

同样,您可以使用以下字符来格式化时间字符串:

  • h - 以12小时格式表示小时,前导零(01至12)

  • H - 以24小时格式表示小时,前导零(00至23)

  • i - 表示分钟,前导零(00到59)

  • s - 表示秒,前导零(00到59)

  • a - 表示小写的午前和午后(上午或下午)

  • A - 表示大写的午前和午后(上午或下午)

以下示例中的PHP代码以不同的格式显示日期:

<?php
echo date("h:i:s") . "<br>";
echo date("F d, Y h:i:s A") . "<br>";
echo date("h:i a");
?>
テストをしてみる‹/›

PHP time()関数

time()関数は、現在の時間をUnixタイムスタンプ(Unixエポックからの秒数)として取得します:1970年1月1日00:00:00 GMT)。

<?php
//実行時間:2014-03-05 07:19:18
$timestamp = time();
echo($timestamp);
?>
テストをしてみる‹/›

上記の例は以下の結果を出力します。

1394003958

先に導入されたdate()関数にタイムスタンプを渡すことで、それを人間が読みやすい日期に変換することができます。

<?php
$timestamp = 1394003958;
echo(date("Y-m-d H:i:s", $timestamp));
?>
テストをしてみる‹/›

上記の例は以下の結果を出力します。

2014-03-05 07:19:18

PHP mktime()関数

mktime()関数は、特定の日期と時間に基づいてタイムスタンプを作成するために使用されます。日期と時間が提供されない場合、現在の日付と時間のタイムスタンプが返されます。

mktime()関数の構文は以下のように示されます:

mktime(hour, minute, second, month, day, year)

以下の例では、2014年5月10午後3:20:12対応するタイムスタンプ:

<?php
//特定の日期のタイムスタンプを作成する
echo mktime(15, 20, 12, 5, 10, 2014);
?>
テストをしてみる‹/›

上記の例は以下の結果を出力します。

1399735212

注意:必要に応じて、任意の数のパラメータを保持することができますが、現在の時間に対応する値を使用します。すべてのパラメータを省略すると、mktime()関数は現在の日付と時間に対応するUNIXタイムスタンプを返します。time()関数と同じです。

mktime()関数は、特定の日期に対応する曜日名を検索するために使用できます。これには、以下の例のように、あなたのタイムスタンプに'l'('L'の小文字)を使用するだけで十分です。以下の例では、2014年4月1この日曜日:

<?php
//特定の日期の曜日名を取得する
echo date('l', mktime(0, 0, 0, 4, 1, 2014));
?>
テストをしてみる‹/›

上記の例は以下の結果を出力します。

火曜日

mktime()関数は、特定の期間後の将来に特定の日期を検索するために使用できます。以下の例では、現在の日期から30ヶ月後の日期は?

<?php
//実行日付は2014年3月5日
$futureDate = mktime(0, 0, 0, date("m"+30, date("d"), date("Y"));
echo date("d",/m/Y", $futureDate);
?>
テストをしてみる‹/›

上記の例は以下の結果を出力します。

05/09/2016

完全なPHP日期参照

PHPの日期を確認してください/時間関数の参照部分を確認して、PHPで利用可能なすべての日期と時間関数の完全なリストを取得してください。