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

如何将jQuery日历选中的日期传递至PHP后端?

嘿,我来帮你搞定这个问题!你要把jQuery日历选中的日期以dd/mm/yyyy格式传到PHP,其实分前端处理格式+发送、后端接收解析两步就行,结合你给的代码片段,我给你整理完整方案:

如何将jQuery日历选中的日期以dd/mm/yyyy格式传递到PHP服务器

第一步:前端处理日期格式并通过AJAX发送

你已经用了ion.calendar插件,我们先完善日历的初始化代码,在选中日期的回调里把日期格式化成你要的dd/mm/yyyy,再用AJAX把这个值传给PHP脚本。基于你给出的<div id="datum"></div>,补全前端代码:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<link href="css/ion.calendar.css" rel="stylesheet" type="text/css">
<!-- 记得引入jQuery和ion.calendar的JS文件 -->
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script src="js/ion.calendar.js"></script>
</head>
<body>
<div id="datum"></div>

<script>
$(document).ready(function() {
    $('#datum').ionCalendar({
        // 可根据需求配置日历选项,比如语言、默认显示月份
        lang: 'zh',
        // 关键:选中日期后的回调函数
        onSelect: function(date) {
            // 把Date对象格式化成dd/mm/yyyy格式
            const day = String(date.getDate()).padStart(2, '0');
            const month = String(date.getMonth() + 1).padStart(2, '0'); // 月份从0开始,需+1
            const year = date.getFullYear();
            const formattedDate = `${day}/${month}/${year}`;

            // 用AJAX发送到PHP服务器
            $.ajax({
                url: 'process_date.php', // 你的PHP处理脚本路径
                type: 'POST',
                data: { selected_date: formattedDate }, // 传递格式化后的日期
                success: function(response) {
                    // 服务器返回的响应,可根据需求做提示
                    console.log('日期已成功发送,服务器响应:', response);
                    alert('日期提交成功!');
                },
                error: function(xhr, status, error) {
                    console.error('发送失败:', error);
                    alert('提交失败,请重试!');
                }
            });
        }
    });
});
</script>
</body>
</html>

第二步:PHP服务器端接收并处理日期

创建process_date.php脚本,接收前端传过来的日期。注意:因为是dd/mm/yyyy格式,直接用new DateTime()会解析错误,必须指定格式验证解析:

<?php
// 检查是否有POST过来的日期参数
if(isset($_POST['selected_date'])) {
    $selectedDate = $_POST['selected_date'];
    
    // 解析dd/mm/yyyy格式的日期为DateTime对象
    $dateObj = DateTime::createFromFormat('d/m/Y', $selectedDate);
    
    // 验证日期是否有效(避免恶意输入的无效日期)
    if($dateObj && $dateObj->format('d/m/Y') === $selectedDate) {
        // 这里写你的业务逻辑,比如存入数据库、日期计算等
        echo "成功接收日期:{$selectedDate},转换为标准数据库格式:{$dateObj->format('Y-m-d')}";
    } else {
        echo "无效的日期格式,请确保是dd/mm/yyyy格式!";
    }
} else {
    echo "未接收到日期参数!";
}
?>

几个注意点

  • 确保jQuery和ion.calendar的JS文件路径与你的项目结构匹配,不要引错
  • 推荐用POST方式传递日期,避免GET方式中/字符的编码问题
  • 服务器端一定要做日期有效性验证,防止非法数据传入

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:33:24