PHP 日期与时间
日期是日常生活中的一部分,因此在不加思考的情况下与它们一起工作变得容易。PHP还提供了强大的日期算术工具,使操作日期变得简单轻松。
使用time()函数获取时间戳
PHP的 time() 函数为您提供了有关当前日期和时间的所有信息。它不需要任何参数,但返回一个整数。
time()函数返回的整数表示自1970年1月1日午夜格林尼治时间以来经过的秒数。这一刻被称为UNIX纪元,自那时以来经过的秒数被称为时间戳。
<?php
print time();
?>
这将产生以下结果 −
1480930103
这是一件难以理解的事情。但是PHP提供了出色的工具,可以将时间戳转换为人类习惯的格式。
使用getdate()函数转换时间戳
函数 getdate() 可选地接受一个时间戳,并返回一个包含有关日期信息的关联数组。如果省略时间戳,它将使用由time()返回的当前时间戳。
下表列出了由getdate()返回的数组中包含的元素。
序号 | 键名 & 描述 | 示例 |
---|---|---|
1 | seconds 分钟过去的秒数(0-59) | 20 |
2 | minutes 小时过去的分钟数(0-59) | 29 |
3 | hours 一天中的小时数(0-23) | 22 |
4 | mday 一个月中的日期(1-31) | 11 |
5 | wday 一周中的日期(0-6) | 4 |
6 | mon 一年中的月份(1-12) | 7 |
7 | year 年份(4位数) | 1997 |
8 | yday 一年中的天数(0-365) | 19 |
9 | weekday 星期几 | Thursday |
10 | month 一年中的月份 | January |
11 | 0 时间戳 | 948370048 |
现在您可以完全控制日期和时间。您可以按您想要的任何格式对此日期和时间进行格式化。
示例
尝试以下示例
<?php
date_array = getdate();
foreach (date_array as key =>val ){
print "key =val<br />";
}
formated_date = "Today's date: ";formated_date .= date_array['mday'] . "/";formated_date .= date_array['mon'] . "/";formated_date .= date_array['year'];
printformated_date;
?>
这将产生以下结果−
seconds = 10
minutes = 29
hours = 9
mday = 5
wday = 1
mon = 12
year = 2016
yday = 339
weekday = Monday
month = December
0 = 1480930150
Today's date: 5/12/2016
使用date()函数转换时间戳
date()函数返回一个表示日期的格式化字符串。您可以通过传递一个字符串参数来对date()返回的格式进行极大的控制。
date(format,timestamp)
date()可选地接受一个时间戳,如果省略,则使用当前的日期和时间。你在传递给date()的格式字符串中包含的任何其他数据都将包含在返回值中。
以下表格列出了格式字符串可以包含的代码:
序号 | 格式与描述 | 示例 |
---|---|---|
1 | a 小写的’am’或’pm’ | pm |
2 | A 大写的’AM’或’PM’ | PM |
3 | d 月份中的日期,带有前导零的数字 | 20 |
4 | D 星期几的英文缩写(三个字母) | Thu |
5 | F 月份名称 | January |
6 | h 小时(12小时制 – 前导零) | 12 |
7 | H 时间(24小时制 – 前导零) | 22 |
8 | g 时间(12小时制 – 没有前导零) | 12 |
9 | G 时间(24小时制 – 没有前导零) | 22 |
10 | i 分钟(0 – 59) | 23 |
11 | j 日期(没有前导零) | 20 |
12 | l (小写’L’) 星期几 | 星期四 |
13 | L 闰年(’1’代表是,’0’代表否) | 1 |
14 | m 年月份(数值-前导零) | 1 |
15 | M 年月份(三个字母) | 一月 |
16 | r RFC 2822格式化的日期 | 周四,2000年12月21日 16:01:07 +0200 |
17 | n 年月份(数值-无前导零) | 2 |
18 | s 小时的秒数 | 20 |
19 | U 时间戳 | 948372444 |
20 | y 年份(两位数) | 06 |
21 | Y 年份(四位数) 年(四位数字) | 2006 |
22 | z 年中的第几天(0 – 365) | 206 |
23 | Z 与格林威治时间相差的秒数 | +5 |
示例
尝试以下示例
<?php
print date("m/d/y G.i:s<br>", time());
echo "<br>";
print "Today is ";
print date("j of F Y, \a\\t g.i a", time());
?>
这将产生以下结果−
12/05/16 9:29:47
Today is 5 2016f December 2016 at 9:29 am
希望您对如何根据您的要求进行日期和时间格式化有了很好的理解。供您参考,以下是所有日期和时间函数的完整列表:PHP 日期和时间函数。