You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改代码,用PHP按‘日 月份全称 年份’格式展示日期结果?

改用PHP格式化提交的日期为「日 月份全称 年份」格式的解决方案

嘿,我来帮你把这段代码改成用PHP后端处理日期格式化的版本~ 原来的前端Moment.js处理可以完全替换掉,直接在后端完成日期的解析和格式化,这样更稳定也不用依赖前端脚本。

完整修改后的代码

<?php
// 先设置时区,避免日期处理出现偏差,可根据需求替换成对应时区
date_default_timezone_set('Asia/Shanghai');

$formattedDate = '';
// 判断是否是POST提交且存在日期参数
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['date'])) {
    // 使用DateTime类解析并格式化日期,比strtotime更可靠
    $dateObj = new DateTime($_POST['date']);
    // 格式化为「日 月份全称 年份」,格式字符串对应规则见下文
    $formattedDate = $dateObj->format('j F Y');
}
?>

<form action="<?=$_SERVER['PHP_SELF'];?>" method="post">
    <input type="date" name="date" id="date" required>
    <input type="submit" value="提交日期">
</form>

<?php if (!empty($formattedDate)): ?>
    <h3>格式化后的结果:</h3>
    <p><?php echo $formattedDate; ?></p>
<?php endif; ?>

关键修改点说明

  • 移除前端冗余代码:删掉了原来的Moment.js引入和dateformat()函数,因为现在完全由PHP后端处理日期,不需要前端介入。
  • 时区设置:必须先设置时区(比如Asia/Shanghai),否则PHP处理日期可能会出现时区偏移问题,你可以根据自己的需求替换成UTC、Europe/London等时区。
  • 日期格式化规则:使用format('j F Y')生成目标格式:
    • j:不带前导零的日期数字(比如1、25)
    • F:月份的英文全称(比如August、December)
    • Y:4位完整年份(比如2019、2024)
  • 表单优化:给日期输入框加了required属性,确保用户必须填写日期再提交,同时移除了冗余的onsubmit事件绑定。

替代方案(用date()函数)

如果你习惯用date()函数,也可以这样处理(但DateTime类更推荐,处理边缘日期更稳定):

if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['date'])) {
    $timestamp = strtotime($_POST['date']);
    $formattedDate = date('j F Y', $timestamp);
}

内容的提问来源于stack exchange,提问作者Toony

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 06:59:18