答案:PHP中处理日期时间主要使用date()、strtotime()和DateTime类。date()用于格式化输出时间,如Y-m-d H:i:s;strtotime()将字符串转为时间戳,支持+1 day等相对语法;DateTime类提供面向对象操作,支持时区设置、加减计算;需用date_default_timezone_set()设置时区避免偏差,推荐优先使用DateTime类以提升代码可维护性。

PHP 中处理日期和时间主要依赖内置的 date()、strtotime()、DateTime 类等函数和类。合理使用这些工具,可以轻松实现时间格式化、计算、时区设置等功能。
1. 使用 date() 函数格式化输出时间
date() 是最常用的日期格式化函数,用于将时间戳转换为可读的字符串格式。
基本语法:
date(format, timestamp)
其中 timestamp 可选,默认为当前时间。
常见格式字符:
- Y - 4位年份(如:2024)
- m - 两位月份(01-12)
- d - 两位日期(01-31)
- H - 24小时制小时(00-23)
- i - 分钟(00-59)
- s - 秒(00-59)
- D - 星期几缩写(Mon-Sun)
- l - 星期几全称(Monday-Sunday)
示例:
立即学习“PHP免费学习笔记(深入)”;
echo date('Y-m-d H:i:s'); // 输出:2024-04-05 14:30:22echo date('Y年m月d日 l'); // 输出:2024年04月05日 Friday
2. 将字符串转为时间戳 strtotime()
当需要将日期字符串转换为时间戳进行计算时,使用 strtotime() 非常方便。
示例:
立即学习“PHP免费学习笔记(深入)”;
$time = strtotime("2024-04-01");echo date('Y-m-d', $time); // 输出:2024-04-01
支持相对时间表达:
- +1 day - 加一天
- next Monday - 下个周一
- last week - 上周
- now - 当前时间
示例:
立即学习“PHP免费学习笔记(深入)”;
echo date('Y-m-d', strtotime('+7 days')); // 7天后的日期echo date('Y-m-d', strtotime('first day of next month')); // 下月第一天
3. 使用 DateTime 类进行更灵活操作
对于复杂的时间操作,推荐使用面向对象的 DateTime 类,功能更强大,支持时区、加减、比较等。
创建 DateTime 对象:
$date = new DateTime(); // 当前时间$date = new DateTime('2024-04-01'); // 指定日期
$date = new DateTime('now', new DateTimeZone('Asia/Shanghai')); // 带时区
格式化输出:
echo $date->format('Y-m-d H:i:s'); // 和 date() 类似时间增减:
$date->modify('+1 week');// 或使用 DateInterval
$date->add(new DateInterval('P2D')); // 加2天
4. 设置默认时区避免警告
PHP 默认时区可能不是本地时间,建议在脚本开头设置时区。
date_default_timezone_set('Asia/Shanghai');常用时区:
- Asia/Shanghai - 中国标准时间
- Asia/Tokyo - 日本
- Europe/London - 英国
- UTC - 标准时区
基本上就这些。掌握 date()、strtotime() 和 DateTime 类,就能应对大多数日期时间需求。注意时区设置,避免出现时间偏差问题。实际开发中建议优先使用 DateTime 类,更清晰且易于维护。











