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

PHP新手求助:用PHP、MySQL计算两日期总天数并在HTML展示

计算两个日期之间的准确总天数(含HTML表单展示)

PHP 实现方案

问题出在date_diff返回的是两个日期的间隔天数(不含其中一端),而你需要的是包含起始日和结束日的总天数,只需将结果加1即可。

完整代码(HTML表单+PHP处理)

<!DOCTYPE html>
<html>
<body>

<form method="post">
  <label for="date_fm">起始日期 (dd-mm-yy):</label>
  <input type="text" id="date_fm" name="date_fm" value="10-10-22"><br><br>
  <label for="date_to">结束日期 (dd-mm-yy):</label>
  <input type="text" id="date_to" name="date_to" value="20-10-22"><br><br>
  <input type="submit" name="submit" value="计算总天数">
</form>

<?php
if(isset($_POST['submit'])){
    // 转换输入的dd-mm-yy格式为PHP可识别的DateTime对象
    $date_fm = DateTime::createFromFormat('d-m-y', $_POST['date_fm']);
    $date_to = DateTime::createFromFormat('d-m-y', $_POST['date_to']);
    
    if($date_fm && $date_to){
        // 计算日期间隔
        $interval = $date_fm->diff($date_to);
        // 总天数 = 间隔天数 + 1(包含起始日)
        $total_days = $interval->days + 1;
        echo "<p>总天数: $total_days</p>";
    } else {
        echo "<p>请输入正确的日期格式(dd-mm-yy)</p>";
    }
}
?>

</body>
</html>

MySQL 实现方案

用MySQL计算时,同样需要对DATEDIFF()的结果加1,才能得到包含两端日期的总天数:

基础查询示例

-- 先将dd-mm-yy格式转换为MySQL支持的yyyy-mm-dd格式
SELECT DATEDIFF(STR_TO_DATE('20-10-22', '%d-%m-%y'), STR_TO_DATE('10-10-22', '%d-%m-%y')) + 1 AS total_days;

执行后会返回11,符合你的预期。

PHP结合MySQL的示例

如果需要通过PHP调用数据库计算:

<?php
// 数据库连接信息
$conn = new mysqli('localhost', 'your_username', 'your_password', 'your_dbname');

if(isset($_POST['submit'])){
    $date_fm = $_POST['date_fm'];
    $date_to = $_POST['date_to'];
    
    // 预处理查询,避免SQL注入
    $stmt = $conn->prepare("SELECT DATEDIFF(STR_TO_DATE(?, '%d-%m-%y'), STR_TO_DATE(?, '%d-%m-%y')) + 1 AS total_days");
    $stmt->bind_param("ss", $date_to, $date_fm);
    $stmt->execute();
    $result = $stmt->get_result();
    $row = $result->fetch_assoc();
    
    echo "<p>总天数: " . $row['total_days'] . "</p>";
    
    $stmt->close();
    $conn->close();
}
?>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 23:15:54