Php 简明教程
PHP - Date & Time
PHP 的内置函数库具有广泛的函数,可帮助以编程方式处理和操作日期和时间信息。可以使用日期/时间信息的字符串形式或者从当前系统的时间创建 PHP 中的 Date 和 Time 对象。
PHP 提供定义了许多方法的 DateTime 类。在本章中,我们将会详细了解 PHP 中提供的各种与日期和时间相关的。
PHP 中的日期/时间功能实现了 ISO 8601 日历,它实现了在格里高利历之前通用的现行的闰年规则。日期和时间信息内部存储为 64 位数字。
Getting the Time Stamp with time()
PHP 的 time() 函数提供了有关当前日期和时间的所需的所有信息。它不需要参数,但返回一个整数。
time(): int
time() 返回的整数表示自 1970 年 1 月 1 日格林尼治标准时间午夜以来的经过的秒数。这个时刻称为 UNIX 紀元,并且从那时起经过的秒数称为时间戳。
<?php
print time();
?>
它将生成以下 output −
1699421347
我们可以将时间戳转换为人类容易理解的形式。
Converting a Time Stamp with getdate()
该函数 getdate() 可以选择接受一个时间戳,并返回一个包含有关日期信息的关联数组。如果您省略时间戳,它会使用 time() 返回的当前时间戳。
下表列出了 getdate() 返回的数组中包含的元素。
Sr.No |
Key & Description |
Example |
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 Year (4 digits) |
1997 |
8 |
yday 一年中的天(0 - 365) |
19 |
9 |
weekday Day of the week |
Thursday |
10 |
month Month of the year |
January |
11 |
0 Timestamp |
948370048 |
现在您可以完全控制日期和时间。您可以按照想要的任何格式格式化此日期和时间。
Example
看看下面的 example −
<?php
$date_array = getdate();
foreach ( $date_array as $key => $val ){
print "$key = $val\n";
}
$formated_date = "Today's date: ";
$formated_date .= $date_array['mday'] . "-";
$formated_date .= $date_array['mon'] . "-";
$formated_date .= $date_array['year'];
print $formated_date;
?>
它将生成以下 output −
seconds = 0
minutes = 38
hours = 6
mday = 8
wday = 3
mon = 11
year = 2023
yday = 311
weekday = Wednesday
month = November
0 = 1699421880
Today's date: 8-11-2023
Converting a Time Stamp with date()
date() 函数返回一个表示日期的格式化字符串。通过要传递给它的字符串参数,可以对 date() 返回的格式进行大量的控制。
date(string $format, ?int $timestamp = null): string
date() 可选择接受时间戳,如果省略则使用当前日期和时间。包含在传递给 date() 的格式化字符串中的任何其他数据都将包含在返回值中。
下表列出了格式化字符串可以包含的代码:
Sr.No |
Format & Description |
Example |
1 |
a 'am' or 'pm' lowercase |
pm |
2 |
A 'AM' or 'PM' uppercase |
PM |
3 |
d 月份中的天,带前导零的数字 |
20 |
4 |
D 星期中的天(三个字母) |
Thu |
5 |
F Month name |
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 (Lower 'L') 星期中的天 |
Thursday |
13 |
L 閏年(‘1’ 表示是,‘0’ 表示否) |
1 |
14 |
m 年份中的月份(数字,前导零) |
1 |
15 |
M 年份中的月份(三个字母) |
Jan |
16 |
r 以 RFC 2822 格式化日期 |
Thu, 21 Dec 2000 16:01:07 +0200 |
17 |
n 年份中的月份(数字,无前导零) |
2 |
18 |
s Seconds of hour |
20 |
19 |
U Time stamp |
948372444 |
20 |
y Year (two digits) |
06 |
21 |
Y Year (four digits) |
2006 |
22 |
z 一年中的第幾天(0-365) |
206 |
23 |
Z 格林威治时间的秒偏移量 |
+5 |
Example
看看下面的 example −
<?php
print date("m/d/y G.i:s \n", time()) . PHP_EOL;
print "Today is ";
print date("j of F Y, \a\\t g.i a", time());
?>
它将生成以下 output −
11/08/23 11.23:08
Today is 8 2023f November 2023, at 11.23 am
希望您对如何根据您的要求格式化日期和时间的了解很好。供您参考,所有日期和时间函数的完整列表中给出了 PHP Date & Time Functions 。