在本教程中,您将学习如何在PHP中提取或格式化日期和时间。
PHP date()函数将时间戳转换为更具可读性的日期和时间。
计算机以称为UNIX时间戳的格式存储日期和时间,该时间以自Unix纪元开始(以格林威治标准时间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服务器的内置时钟返回当前日期和时间。
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"); ?>测试看看
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
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
请查看PHP日期/时间函数参考部分,以获取PHP中所有可用的日期和时间函数的完整列表。