PHP如何将$_POST中的Timestamp格式化为指定日期时间格式
PHP 时间格式转换实现方法
前置注意事项
- 需先校验
$_POST['Time']是否存在且为合法时间格式,避免异常报错 - 若需输出中文的上午/下午、月份名,需提前设置时区和区域语言,示例默认输出英文格式
实现方案1(推荐:DateTime类,错误处理更稳定)
// 先判断POST参数是否存在 if (isset($_POST['Time'])) { // 创建DateTime对象,同时设置时区避免时间偏差 $date = DateTime::createFromFormat('Y-m-d H:i:s', $_POST['Time'], new DateTimeZone('Asia/Shanghai')); if ($date) { // 按要求格式化输出 $formattedTime = $date->format('F d, Y, h:i a'); // 对应示例输入会输出:September 25, 2021, 06:17 pm echo $formattedTime; } else { echo "输入的时间格式不合法"; } }
格式符说明:
F:输出月份全称(如September)d:输出两位数字的日期(不足两位补前导0)Y:输出四位数字的年份h:12小时制的小时(不足两位补前导0)i:两位数字的分钟a:输出小写的am/pm标识
实现方案2(轻量场景:strtotime + date 组合)
if (isset($_POST['Time'])) { $timestamp = strtotime($_POST['Time']); if ($timestamp !== false) { $formattedTime = date('F d, Y, h:i a', $timestamp); echo $formattedTime; } else { echo "输入的时间格式不合法"; } }
注意:该方案依赖
strtotime的自动解析能力,若输入格式偏差较大可能出现解析错误,优先推荐使用DateTime方案。
内容的提问来源于stack exchange,提问作者Adachi
相关产品推荐
相关产品推荐

