在本 PHP 教程中,您将学习 PHP 中使用的所有日期和时间函数。我们将详细讨论日期和时间函数及其用途和格式。
PHP date() 函数是一个内置函数,用于处理日期数据类型。PHP date() 函数有助于将日期或时间转换为人类可读的格式。date() 函数的强制格式参数定义了如何格式化日期(或时间)。
以下是一些常用日期字符的示例
其他字符,例如“/”、“.”或“-”可以放置在字符之间以提供格式化。
PHP 中的 date() 函数将只返回服务器的当前日期/时间。
语法
date (format, timestamp(optional));
示例
echo "Today is " . date("Y/m/d") . "\n";
echo "Today is " . date("Y.m.d") . "\n";
echo "Today is " . date("Y-m-d") . "\n";
echo "Today is " . date("l");
输出
Today is 2021/11/27 Today is 2021.11.27 Today is 2021-11-27 Today is Saturday
date() 方法生成一个表示日期的格式化字符串。通过您必须提供给 date() 的字符串参数,您可以对它返回的格式进行大量控制。date() 函数接受一个时间戳作为可选参数;如果未指定,则使用当前日期和时间。提供给 date() 的格式字符串中的任何附加数据都将包含在返回值中。在 PHP 中,时间戳是一个数字,表示当前时间与 1970 年 1 月 1 日 00:00:00 格林威治标准时间 (GMT) 之间的秒数。time() 函数根据默认时区返回值。php.ini 文件指定了默认时区。date_default_timezone_set 方法也可以用于以编程方式设置它。
语法
time();
示例
echo time ();
输出
1637997813
我们使用“DateTimeZone::listIdentifiers()”方法来提取可用的时区。
示例
$timezones = DateTimeZone::listIdentifiers();
foreach($timezones as $key => $zones){
echo "$key $zones \n";
}
输出
有 424 个时区可用,在上面的示例中,我们可以看到我们已经访问了时区并使用 foreach 循环打印了值。
为了设置我们当前的日期和时间,我们必须使用方法 date_default_timezone_set(),并在其参数中传递所需的时区。
示例
// to know the default timezone
echo "The time in " . date_default_timezone_get() . " is " . date("H:i:s");
echo "\n";
// to set the timezone
date_default_timezone_set("Asia/Calcutta");
echo "The time in " . date_default_timezone_get() . " is " . date("h:i:s a");
输出
The time in UTC is 07:53:01 The time in Asia/Calcutta is 01:23:01 pm
以下是一些常用日期时间格式字符的示例
| 字符 | 描述 |
|---|---|
|
a |
它用于以小写字母表示“am”或“pm” |
|
A |
它用于以大写字母表示“AM”或“PM” |
|
d |
它用于表示月份中的日期,带前导 0 |
|
D |
它用于以三个字母表示星期几(Mon) |
|
F |
它用于表示月份 |
|
h |
它用于以 12 小时格式表示时间,带前导 0 |
|
H |
它用于以 24 小时格式表示时间,带前导 0 |
|
g |
它用于以 12 小时格式表示时间,不带前导 0 |
|
G |
它用于以 24 小时格式表示时间,不带前导 0 |
|
i |
它用于表示分钟(0-59) |
|
j |
它用于表示月份中的日期,不带前导 0 |
|
l |
它用于表示星期几 |
|
L |
它用于表示闰年(如果为真则返回 1,如果为假则返回 0) |
|
m |
它用于以数字表示月份,带前导 0 |
|
M |
它用于以三个字母表示月份(Feb) |
|
n |
它用于以数字表示月份,不带前导 0 |
|
s |
它用于表示小时的秒数 |
|
U |
它用于表示时间戳 |
|
y |
它用于以两位数字表示年份 |
|
Y |
它用于以四位数字表示年份 |
|
z |
它用于表示一年中的日期 |
|
Z |
它用于表示与 GMT 的秒数偏移量 |
语法
date_add(object, interval);
示例
$date=date_create("2021-11-27");
date_add($date,date_interval_create_from_date_string("20 days"));
echo date_format($date,"Y-m-d");
输出
2021-12-17
语法
date_format(object, format);
示例
$date=date_create("2021-11-27");
echo date_format($date,"Y/m/d");
输出
2021/11/27
语法
checkdate(month, day, year);
示例
var_dump(checkdate(11,27,2021));
var_dump(checkdate(2,29,2021));
输出
bool(true) bool(false)
语法
date_diff(datetime1, datetime2, absolute(optional));
示例
$date1=date_create("2021-01-26");
$date2=date_create("2021-09-10");
$diff=date_diff($date1,$date2);
echo $diff->format("%R%a days");
输出
+227 days
语法
mktime(hour, minute, second, month, day, year, is_dst);
示例
echo date("M-d-Y h:m:s", mktime(10,11,35,11,27,2021));
输出
Nov-27-2021 10:11:35