PHP中date()函数可格式化日期时间:基础用Y-m-d等输出日期;加H:i:s输出完整时间;结合中文数组显示星期月份;传时间戳格式化历史时间;用setlocale和strftime尝试本地化但需备选方案。

如果您需要在PHP中将日期时间以特定格式输出,则可以使用date()函数配合不同的格式字符来实现。以下是常用的格式化方法:
一、基础日期格式化
date()函数通过传递格式字符串和可选的时间戳参数,将时间转换为指定格式的字符串。若未提供时间戳,默认使用当前本地时间。
1、使用date("Y-m-d")输出年-月-日格式,例如2023-10-05。
2、使用date("Y/m/d")输出年/月/日格式,例如2023/10/05。
立即学习“PHP免费学习笔记(深入)”;
3、使用date("m-d-Y")输出月-日-年格式,例如10-05-2023。
二、包含时间的完整格式化
在基础日期上添加时分秒部分,可呈现更完整的日期时间信息,适用于日志记录或界面显示。
1、使用date("Y-m-d H:i:s")输出年-月-日 时:分:秒格式,例如2023-10-05 14:23:56。
2、使用date("Y-m-d H:i")输出年-月-日 时:分格式,例如2023-10-05 14:23。
3、使用date("Y-m-d g:i A")输出12小时制带AM/PM格式,例如2023-10-05 2:23 PM。
三、中文星期与月份显示
通过结合date()与中文数组映射,可将数字型星期和月份转为中文表述,提升用户界面友好性。
1、定义中文星期数组:$weekdays = ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"];再用$weekdays[date("w")]获取当前星期。
2、定义中文月份数组:$months = ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"];再用$months[date("n")-1]获取当前月份。
3、组合输出如2023年十月五日 星期四,需拼接date("Y年n月j日")与对应中文数组元素。
四、时间戳与自定义时间格式化
当需要格式化非当前时间(如数据库存储的时间戳或strtotime()解析后的时间)时,需显式传入时间戳参数。
1、使用date("Y-m-d", $timestamp)将整型时间戳转换为日期字符串。
2、使用strtotime("2023-10-05 14:23:56")生成对应时间戳,再传入date()进行格式化。
3、对相对时间处理,如date("Y-m-d", strtotime("+7 days"))输出七天后的日期。
五、国际化与区域设置适配
date()函数本身不支持多语言本地化,需借助setlocale()与strftime()实现部分本地化效果,但需注意系统环境依赖。
1、调用setlocale(LC_TIME, "zh_CN.UTF-8")设置中文区域,部分系统可能不生效。
2、使用strftime("%Y年%O月%e日 %A", time())尝试输出中文格式,其中%A为本地化星期名。
3、若strftime返回空或英文,应退回到中文数组映射方案以保证输出稳定性。











