2026-04-13 17:59:27
PHP处理时间的常用函数与代码示例如下:
1. 获取当前时间戳使用 time() 函数获取当前 Unix 时间戳(从1970年1月1日至今的秒数):
$timestamp = time();echo $timestamp; // 输出类似:17123456782. 格式化时间显示通过 date() 函数将时间戳转换为可读格式,支持自定义格式字符串:
echo date('Y-m-d H:i:s'); // 输出:2025-04-05 10:30:25echo date('Y年m月d日'); // 输出:2025年04月05日echo date('l, F j, Y'); // 输出:Saturday, April 5, 2025常用格式字符:
使用 strtotime() 解析日期字符串为时间戳,支持绝对时间和相对时间:
$ts = strtotime("2025-04-05 10:30:00");echo $ts;// 相对时间示例echo strtotime("+1 week"); // 一周后的时间戳echo strtotime("-3 days"); // 三天前的时间戳echo strtotime("next Monday"); // 下个周一的时间戳echo strtotime("yesterday"); // 昨天的时间戳4. 时区设置与获取PHP默认使用服务器时区,可通过以下函数管理时区以避免时间偏差:
// 查看当前时区echo date_default_timezone_get(); // 设置为中国时区(上海)date_default_timezone_set('Asia/Shanghai'); echo date('Y-m-d H:i:s'); // 输出北京时间// 常见时区标识// Asia/Shanghai(中国)、Asia/Tokyo(日本)、Europe/London(伦敦)、America/New_York(纽约)5. 计算时间差通过时间戳相减获取差值(秒),再转换为小时、分钟等单位:
$startTime = strtotime('2025-04-05 08:00:00');$endTime = strtotime('2025-04-05 10:30:00');$diff = $endTime - $startTime; // 差值(秒)$hours = floor($diff / 3600);$minutes = floor(($diff % 3600) / 60);echo "相差 $hours 小时 $minutes 分钟"; // 输出:相差 2 小时 30 分钟6. 使用 DateTime 类(面向对象方式)DateTime 类提供更强大的时间操作能力,适合复杂场景:
// 获取当前时间并格式化$date = new DateTime();echo $date->format('Y-m-d H:i:s'); // 设置指定时间$date = new DateTime('2025-04-05');echo $date->format('Y年m月d日'); // 时间加减操作$date->modify('+1 week');echo $date->format('Y-m-d'); // 时间比较$date1 = new DateTime('2025-04-05');$date2 = new DateTime('2025-04-10');$interval = $date1->diff($date2);echo $interval->days . ' 天'; // 输出:5 天关键注意事项掌握上述函数和类(time()、date()、strtotime()、DateTime)即可覆盖90%以上的PHP时间处理需求,重点在于根据场景选择合适的方法并保持时区统一。