2026-10-24 17:22:09
在PHP中,格式化日期可以通过多种方式实现,以下是常用的方法及示例:
1. 使用 date() 函数date() 是最基础的日期格式化函数,通过指定格式字符串输出日期时间。
基本语法:
echo date('Y-m-d H:i:s'); // 输出:2023-02-24 14:05:36常用格式化字符:
示例:
echo date('Y年m月d日 l'); // 输出:2023年02月24日 Fridayecho date('h:i:s a'); // 输出:02:05:36 pm2. 使用 DateTime 类(面向对象风格)PHP 5.2+ 提供了更灵活的 DateTime 类,支持链式操作和时区处理。
基本用法:
$date = new DateTime(); // 当前时间echo $date->format('Y-m-d H:i:s'); // 输出:2023-02-24 14:05:36自定义时间:
$date = new DateTime('2023-02-24');echo $date->format('F j, Y'); // 输出:February 24, 2023时区设置:
$date = new DateTime('now', new DateTimeZone('Asia/Shanghai'));echo $date->format('H:i:s'); // 输出上海时区时间3. 使用 DateTimeImmutable 类与 DateTime 类似,但对象不可变(修改时会返回新对象)。
$date = new DateTimeImmutable();$newDate = $date->modify('+1 day'); // 返回新对象echo $newDate->format('Y-m-d'); // 输出明天的日期4. 使用 strtotime() 解析字符串将人类可读的日期转换为时间戳,再通过 date() 格式化。
$timestamp = strtotime('next Monday');echo date('Y-m-d', $timestamp); // 输出下周一的日期5. 国际化格式化(IntlDateFormatter)需要安装 intl 扩展,支持本地化日期格式。
$formatter = new IntlDateFormatter( 'zh_CN', IntlDateFormatter::FULL, IntlDateFormatter::FULL, 'Asia/Shanghai', IntlDateFormatter::GREGORIAN, 'yyyy年MM月dd日 HH:mm:ss');echo $formatter->format(time()); // 输出中文格式日期总结根据场景选择合适的方法即可。