PHP中的日期与时间处理:函数与示例

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

介绍:为什么需要掌握 PHP 中的日期和时间处理



处理日期和时间是 Web 开发中的关键任务之一。无论是记录用户操作、计算年龄、创建日历、处理数据库中的时间戳,还是管理订阅期限——没有可靠的日期处理工具是不行的。PHP 为开发者提供了强大且灵活的函数和类来实现这些目的。



本文将详细解析 PHP 中处理日期和时间的主要方法:从简单的 date() 和 time() 函数,到使用 DateTime 类的面向对象方法。您将学习如何格式化日期、计算日期差异、处理时区以及避免常见错误。



核心函数:date()、time() 和 mktime()



在 PHP 中获取当前日期或时间最简单的方法是使用 date() 函数。它接受一个格式字符串和一个可选的时间戳。如果未传递时间戳,则使用当前时间。



<?php// 当前日期,格式为 "年-月-日"echo date('Y-m-d'); // 输出:2025-04-10

// 当前时间,格式为 "时:分:秒"echo date('H:i:s'); // 输出:14:35:20

// 完整的日期和时间echo date('Y-m-d H:i:s'); // 输出:2025-04-10 14:35:20?>


time() 函数

time() 返回当前的 Unix 时间戳(自 1970 年 1 月 1 日以来经过的秒数)。这对于计算和比较非常有用。



<?php$now = time();echo $now; // 输出:1744277720(数字每秒变化)

// 7 天后的日期$nextWeek = time() + (7 * 24 * 60 * 60);echo date('Y-m-d', $nextWeek); // 输出:2025-04-17?>


mktime() 函数

mktime() 允许为特定的日期和时间创建时间戳。当需要为给定参数获取时间戳时,这很方便。



<?php// 为 2025 年 12 月 25 日 10:00:00 创建时间戳$christmas = mktime(10, 0, 0, 12, 25, 2025);echo date('Y-m-d H:i:s', $christmas); // 输出:2025-12-25 10:00:00?>


日期格式化:常用字符

下表列出了 date() 函数最常用的格式化字符:

  • d — 月份中的第几天(01–31)
  • m — 月份(01–12)
  • Y — 4 位数字表示的年份(2025)
  • H — 24 小时制的小时(00–23)
  • i — 分钟(00–59)
  • s — 秒(00–59)
  • l — 星期几的完整文本格式(Monday)
  • F — 月份的完整文本格式(April)


面向对象方法:DateTime 类

从 PHP 5.2 开始,推荐使用 DateTime 类来处理日期。它提供了更多的功能和直观的接口。



创建 DateTime 对象

<?php// 当前日期和时间$date = new DateTime();echo $date->format('Y-m-d H:i:s'); // 输出:2025-04-10 14:35:20

// 特定日期$birthday = new DateTime('1990-07-15');echo $birthday->format('d.m.Y'); // 输出:15.07.1990

// 使用相对格式$nextMonth = new DateTime('+1 month');echo $nextMonth->format('Y-m-d'); // 输出:2025-05-10?>


修改日期

modify() 方法允许使用相对字符串轻松更改日期。



<?php$date = new DateTime('2025-04-10');$date->modify('+10 days');echo $date->format('Y-m-d'); // 输出:2025-04-20

$date->modify('first day of next month');echo $date->format('Y-m-d'); // 输出:2025-05-01?>


差

博客

书籍推荐