欢迎访问宙启技术站
智能推送

如何使用PHP函数处理日期?

发布时间:2023-06-17 01:38:06

PHP提供了很多函数来处理日期,这有助于在网站开发中对日期和时间进行操作。这些函数能够使开发人员计算日期和时间,格式化日期和时间以及用于语言本地化,如A.M./P.M.的表示等等。本篇文章将讲解如何使用PHP函数处理日期,以及它们的一些方法和用途。

PHP中的日期格式

PHP中的日期是在时间戳的基础上构建,时间戳是一个表示某个日期和时间的数字。在PHP中,时间戳是一个整数,代表从1970年1月1日午夜起过去的秒数。当使用日期函数时,您必须将时间戳作为输入传递给函数,或使用常用日期格式进行格式化。

PHP常见的日期格式包括:

- Y 年(4位数,如2021)

- m 月(2位数,如01-12)

- d 日(2位数,如01-31)

- H 小时(24小时制,2位数,如00-23)

- i 分钟(2位数,如00-59)

- s 秒(2位数,如00-59)

- a 上午或下午(AM或PM)

PHP时间函数

以下是一些重要的时间函数:

1. date()

date()函数用于将时间戳或当前时间转换为指定格式的日期字符串。以下是date()函数的语法:

date(format,timestamp)

参数说明:

- format:必需。要格式化日期/时间的字符串。

- timestamp:可选。时间戳,表示时间的秒数,以 Unix 时间戳格式计算。

示例:

// 获取当前时间戳并格式化
echo date("Y-m-d H:i:s");

// 获取指定日期的时间戳并格式化
echo date("Y-m-d H:i:s", mktime(0, 0, 0, 12, 31, 2021));

输出:

2021-09-09 14:30:00
2021-12-31 00:00:00

2. mktime()

mktime()函数是创建时间戳的另一种方法。该函数用来获取给定时间的时间戳。以下是mktime()函数的语法:

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

参数说明:

- hour:必需。表示小时的整数值(0-23)。

- minute:必需。表示分钟的整数值(0-59)。

- second:必需。表示秒的整数值(0-59)。

- month:必需。表示月份的整数值(1-12)。

- day:必需。表示日期的整数值(1-31)。

- year:可选。表示年份的整数值(如2021)。

示例:

// 获取2021年12月31日的时间戳
echo mktime(0, 0, 0, 12, 31, 2021);

输出:

1640860800

3. time()

time()函数返回当前的时间戳。以下是time()函数的语法:

time()

示例:

// 获取当前时间戳
echo time();

输出:

1631182205

PHP日期函数

以下是一些重要的日期函数:

1. strtotime()

strtotime()函数将人类可读的日期,如“2021-09-09 14:30:00”,转换为时间戳。以下是strtotime()函数的语法:

strtotime(string)

参数说明:

- string:必需。要转换为时间戳的日期字符串。

示例:

// 将日期字符串转换为时间戳
echo strtotime("2021-09-09 14:30:00");

输出:

1631182200

2. strtotime()

strtotime()函数与time()函数的作用相似,但它可以接受一个日期字符串作为参数,并返回相应日期的时间戳。以下是strtotime()函数的语法:

strtotime(time-string,now)

参数说明:

- time-string:必需。表示日期的字符串。

- now:可选。用于参考的日期和时间。

示例:

// 获取当前时间戳
$now = time();

// 计算指定时间的时间戳
echo strtotime("2021-09-09 14:30:00", $now);

输出:

1631182200

3. date_parse()

date_parse()函数将日期字符串解析为关联数组,其中包含有关日期的详细信息。以下是date_parse()函数的语法:

date_parse(string)

参数说明:

- string:必需。要解析的日期字符串。

示例:

// 解析日期字符串
print_r(date_parse("2021-09-09 14:30:00"));

输出:

Array
(
    [year] => 2021
    [month] => 9
    [day] => 9
    [hour] => 14
    [minute] => 30
    [second] => 0
    [fraction] => 
    [warning_count] => 0
    [warnings] => Array
        (
        )

    [error_count] => 0
    [errors] => Array
        (
        )

    [is_localtime] => 
)

4. date_diff()

date_diff()函数用于计算两个日期之间的差异。以下是date_diff()函数的语法:

date_diff(datetime1, datetime2)

参数说明:

- datetime1:必需。要计算的第一个日期。

- datetime2:必需。要计算的第二个日期。

示例:

// 计算两个日期之间的差额
$date1 = date_create("2021-09-01");
$date2 = date_create("2021-09-09");
$diff = date_diff($date1, $date2);

// 输出差额
echo $diff->format("%R%d天");

输出:

+8天

PHP输出不同语言的日期

有时候需要将日期输出为不同语言格式的日期,比如将英文的日期输出为中文的日期。PHP提供了一些函数来实现这一点。

1. setlocale()

setlocale()函数用于设置新的本地化信息。以下是setlocale()函数的语法:

setlocale(category,locale,...)

参数说明:

- category:必需。指定本地化类别的常量。

- locale:必需。指定本地化的区域和语言设置。

- ...:可选。其他参数,如从其他函数中返回的本地化值。

示例:

// 设置本地化信息
setlocale(LC_ALL, "zh_CN");

2. strftime()

strftime()函数用于将时间戳格式化为本地日期和时间。以下是strftime()函数的语法:

strftime(format,timestamp)

参数说明:

- format:必需。要格式化日期/时间的字符串(可以包含各种格式化说明符)。

- timestamp:可选。时间戳,表示时间的秒数,以 Unix 时间戳格式计算。

示例:

// 设置本地化信息
setlocale(LC_ALL, "zh_CN");

// 格式化日期
echo strftime("%A %B %d %Y");

// 对于非英语的语言,需要使用本地化缩写
echo strftime("%A %B %e %Y");

输出:

星期四 九月 09 2021
星期四 九月 9 2021

总结

在本篇文章中,我们学习了如何使用PHP处理日期,并介绍了一些常用的日期和时间函数。这些函数可以帮助我们格式化日期、计算日期差异,并将日期输出为不同语言格式。在编写网站时,日期处理函数是非常有用的,因为它们可以使我们轻松地计算和转换日期,节省了时间。