PHP 基础教程
PHP 高级教程
PHP & MySQL DATABASE
PHP 示例
PHP 参考手册

PHP 日期和时间

在本教程中,您将学习如何在 PHP 中提取或格式化日期和时间。

PHP Date() 函数

PHP date() 函数将时间戳转换为更易读的日期和时间。

计算机以称为 UNIX Timestamp 的格式存储日期和时间,该格式将时间测量为自 Unix 纪元开始以来的秒数(格林威治标准时间 1970 年 1 月 1 日午夜,即 1970 年 1 月 1 日 00:00:00 GMT) .

由于这是一种不适合人类阅读的格式,PHP 将时间戳转换为人类可读的格式,并将日期从您的符号转换为计算机可以理解的时间戳。 PHP date() 函数的语法可以给出。

date(format, timestamp)

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

<?php
$today = date("d/m/Y");
echo $today;
?>

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


使用 PHP 格式化日期和时间

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

  • d - 代表月份中的某天; 带前导零的两位数字(01 或 31)
  • D - 在文本中以缩写形式表示星期几(周一至周日)
  • m - 以数字表示月份,前导零(01 或 12)
  • M - 在文本中表示月份,缩写(1 月到 12 月)
  • 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 &copy; 2010-<?php echo date("Y")?>.

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

  • h - 以 12 小时格式表示小时,前导零(01 到 12)
  • H - 以 24 小时格式表示小时,前导零(00 到 23)
  • i - 用前导零(00 到 59)表示分钟
  • s - 用前导零(00 到 59)表示秒
  • a - 表示小写的 ante meridiem 和 post meridiem(am 或 pm)
  • A - 代表大写的 Ante meridiem 和 Post meridiem(AM 或 PM)

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

<?php
echo date("h:i:s") . "<br>";
echo date("F d, Y h:i:s A") . "<br>";
echo date("h:i a");
?>

请查看 PHP date() 函数参考,以获取可以在格式参数中使用的所有字符的完整列表。


PHP time() 函数

time() 函数用于获取当前时间作为 Unix 时间戳(自 Unix 纪元开始以来的秒数:1970 年 1 月 1 日 00:00:00 GMT)。

<?php
// 执行于 2014 年 3 月 5 日 07:19:18
$timestamp = time();
echo($timestamp);
?>

上面的示例产生以下输出。

1394003958

我们可以将此时间戳转换为人类可读的日期,方法是将其传递给之前引入的 date() 函数。

<?php
$timestamp = 1394003958;
echo(date("F d, Y h:i:s", $timestamp));
?>

上面的示例产生以下输出。

March 05, 2014 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));
?>

上面的示例产生以下输出。

Tuesday

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

C完整的 PHP 日期参考

请查看 PHP 日期/时间函数 参考部分以获取所有有用日期和时间的完整列表 PHP 中可用的时间函数。

Advertisements