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

PHP中常用的日期和时间处理函数介绍:date()、time()、strtotime()等!

发布时间:2023-06-16 07:15:56

在PHP开发中,我们经常需要对日期和时间进行处理,例如获取当前日期、将日期格式化、计算两个日期之间的间隔等。下面介绍几个常用的日期和时间处理函数。

1. date()

date() 函数用于将时间戳格式化为可读性更好的日期字符串。

**语法:**

string date ( string $format [, int $timestamp = time() ] )

**参数:**

- format:必需。规定时间戳格式化的方式。

- timestamp:可选。规定要格式化的时间戳。默认值是当前时间。

**示例:**

echo date("Y-m-d H:i:s"); // 输出当前时间,格式为年-月-日 时:分:秒

format 参数中可以使用各种格式化字符来指定输出的格式,例如:

- Y:四位数字的年份

- m:两位数字的月份(01 到 12)

- d:两位数字的日期(01 到 31)

- H:24 小时制的小时数(00 到 23)

- i:分钟数(00 到 59)

- s:秒数(00 到 59)

- w:星期中的第几天(0 表示星期天,1 表示星期一,以此类推)

更多格式化字符请参考PHP官方文档。

2. time()

time() 函数用于获取当前的 Unix 时间戳。

**语法:**

int time ( void )

**示例:**

echo time(); // 输出当前时间的 Unix 时间戳

Unix 时间戳是指从 1970 年 1 月 1 日 0 时 0 分 0 秒开始到当前的秒数。

3. strtotime()

strtotime() 函数用于将符合英文文本日期格式或时间格式的字符串转换为 Unix 时间戳。

**语法:**

int strtotime ( string $datetime [, int $now = time() ] )

**参数:**

- datetime:必需。表示日期或时间的字符串。

- now:可选。规定时间戳的基准值。默认为当前时间。

**示例:**

echo strtotime("now"); // 输出当前时间的 Unix 时间戳
echo strtotime("2022-01-01"); // 输出2022年1月1日 0时0分0秒的 Unix 时间戳
echo strtotime("+1 day"); // 输出明天同一时刻的 Unix 时间戳

4. mktime()

mktime() 函数用于根据给定的时间生成 Unix 时间戳。

**语法:**

int mktime ( [ int $hour [, int $minute [, int $second [, int $month [, int $day [, int $year [, int $is_dst = -1 ]]]]]]] )

**参数:**

- hour:必需。表示小时数,介于 0 到 23 之间。

- minute:必需。表示分钟数,介于 0 到 59 之间。

- second:必需。表示秒数,介于 0 到 59 之间。

- month:必需。表示月份,介于 1 到 12 之间。

- day:必需。表示日期,介于 1 到 31 之间。

- year:必需。表示年份,介于 1970 到 2038 之间。

- is_dst:可选。表示夏令时的设置。-1 表示由 PHP 自动设置,0 表示不使用夏令时,1 表示使用夏令时。

**示例:**

echo mktime(0, 0, 0, 1, 1, 2022); // 输出2022年1月1日 0时0分0秒的 Unix 时间戳

5. date_diff()

date_diff() 函数用于计算两个日期之间的时间间隔。

**语法:**

DateInterval date_diff ( DateTimeInterface $datetime1 , DateTimeInterface $datetime2 [, bool $absolute = false ] )

**参数:**

- datetime1:必需。第一个日期对象。

- datetime2:必需。第二个日期对象。

- absolute:可选。指定是否返回绝对值。

**示例:**

$date1 = new DateTime("2022-01-01");
$date2 = new DateTime("2022-02-01");
$interval = date_diff($date1, $date2);
echo $interval->format('%a days'); // 输出31天

6. strtotime() 和 date()组合使用示例

$date_str = "2022-11-23";
$date = date("Y-m-d", strtotime($date_str));
echo $date; // 输出:2022-11-23

上面的代码将用 strtotime() 函数将日期字符串转换成时间戳,然后用 date() 函数将时间戳格式化成指定的日期字符串。

总结:以上是常用的日期和时间处理函数的介绍。这些函数在我们的日常开发中使用频率非常高,掌握它们对于进行日期和时间处理功能的开发至关重要。