PHP 日期和时间

PHP 的 date() 函数用于格式化日期和/或时间。

PHP Date() 函数

PHP 的 date() 函数将时间戳格式化为更易读的日期和时间。

语法

date(format,timestamp)
参数 描述
format 必需。指定时间戳的格式。
timestamp

可选。指定一个时间戳。默认为当前日期和时间。

时间戳是一系列字符,表示某个事件发生时的日期和/或时间。

注释:时间戳是一串字符序列,表示某一事件发生的日期和/或时间。

获取日期

date() 函数的必需格式参数指定了如何格式化日期(或时间)。

以下是一些常用于日期的字符:

  • d - 表示月份中的第几天(01 到 31)
  • m - 表示月份(01 到 12)
  • Y - 表示年份(四位数字)
  • l - 表示星期几(小写 'L')

其他字符,如 "/", ".", 或 "-" 也可以插入字符之间以添加其他格式。

下面的例子以三种不同的方式格式化今天的日期:

实例

<?php
echo "Today is " . date("Y/m/d") . "<br>";
echo "Today is " . date("Y.m.d") . "<br>";
echo "Today is " . date("Y-m-d") . "<br>";
echo "Today is " . date("l");
?>

亲自试一试

PHP 提示 - 自动更新版权年份

使用 date() 函数自动更新您网站上的版权年份:

实例

© 2010-<?php echo date("Y");?>

亲自试一试

获取时间

以下是一些常用于时间的字符:

  • H - 24 小时制的小时(00 到 23)
  • h - 12 小时制的小时(01 到 12),前面有零
  • i - 分钟(00 到 59),前面有零
  • s - 秒(00 到 59),前面有零
  • a - 小写的上午和下午(am 或 pm)

下面的例子以指定格式输出当前时间:

实例

<?php
echo "The time is " . date("h:i:sa");
?>

亲自试一试

注意:PHP 的 date() 函数将返回服务器上的当前日期/时间!

获取您的时区

如果您从代码中获取的时间不正确,可能是因为您的服务器位于另一个国家或设置为不同的时区。

因此,如果您需要根据特定位置使时间正确,您可以设置要使用的时区。

下例将时区设置为 "America/New_York",然后以指定格式输出当前时间:

实例

<?php
date_default_timezone_set("America/New_York");
echo "The time is " . date("h:i:sa");
?>

亲自试一试

使用 mktime() 创建日期

date() 函数中的可选时间戳参数指定了一个时间戳。如果省略,将使用当前日期和时间(如上面的示例所示)。

PHP 的 mktime() 函数返回日期的 Unix 时间戳。Unix 时间戳包含 Unix 纪元(1970 年 1 月 1 日 00:00:00 GMT)和指定时间之间的秒数。

语法

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

下面的例子使用 mktime() 函数中的一系列参数,通过 date() 函数创建日期和时间:

实例

<?php
$d=mktime(11, 14, 54, 8, 12, 2014);
echo "Created date is " . date("Y-m-d h:i:sa", $d);
?>

亲自试一试

使用 strtotime() 从字符串创建日期

PHP 的 strtotime() 函数用于将人类可读的日期字符串转换为 Unix 时间戳(自 1970 年 1 月 1 日 00:00:00 GMT 起的秒数)。

语法

strtotime(time, now)

下面的例子从 strtotime() 函数中创建日期和时间:

实例

<?php
$d=strtotime("10:30pm April 15 2014");
echo "Created date is " . date("Y-m-d h:i:sa", $d);
?>

亲自试一试

PHP 在将字符串转换为日期方面相当聪明,因此您可以输入各种值:

实例

<?php
$d=strtotime("tomorrow");
echo date("Y-m-d h:i:sa", $d) . "<br>";

$d=strtotime("next Saturday");
echo date("Y-m-d h:i:sa", $d) . "<br>";

$d=strtotime("+3 Months");
echo date("Y-m-d h:i:sa", $d) . "<br>";
?>

亲自试一试

但是,strtotime() 并不完美,因此请记得检查您放入其中的字符串。

更多日期示例

下例输出未来六个星期六的日期:

实例

<?php
$startdate = strtotime("Saturday");
$enddate = strtotime("+6 weeks", $startdate);

while ($startdate < $enddate) {
  echo date("M d", $startdate) . "<br>";
  $startdate = strtotime("+1 week", $startdate);
}
?>

亲自试一试

下例输出直到 7 月 4 日的天数:

实例

<?php
$d1=strtotime("July 04");
$d2=ceil(($d1-time())/60/60/24);
echo "There are " . $d2 ." days until 4th of July.";
?>

亲自试一试

完整的 PHP 日期参考手册

如需查看所有日期函数的完整参考,请转到我们的完整 PHP 日期参考手册

该参考手册包含每个函数的简短描述和用法实力!