目录

PHP 日期和时间


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


PHP Date() 函数

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

语法

date( format, timestamp)
Parameter Description
format Required. Specifies the format of the timestamp
timestamp Optional. Specifies a timestamp. Default is the current date and time

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


约会

所需格式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()自动更新网站版权年份的函数:

示例

&copy; 2010-<?php echo date("Y");?>
亲自试一试 »

约个时间

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

  • H - 24 小时格式的小时(00 到 23)
  • h - 12 小时格式的一小时,带前导零(01 到 12)
  • i - 带有前导零的分钟(00 到 59)
  • s - 带有前导零的秒(00 到 59)
  • a - 小写的午前和午后(上午或下午)

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

示例

<?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() 函数中的参数指定时间戳。如果省略,将使用当前日期和时间(如上面的示例所示)。

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

语法

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

下面的示例创建一个日期和时间date()函数中的多个参数mktime()功能:

示例

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

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

PHPstrtotime()函数用于将人类可读的日期字符串转换为 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 日期参考

该参考包含每个功能的简短描述和使用示例!


PHP练习

通过练习测试一下

练习:

使用正确的日期函数输出今天的工作日名称(星期一、星期二等)。

echo ;