用php添加两个MySql变量,一个日期和一个数字


Add two MySql variables together, A Date and a Number with php

我想在我的网站中使用php添加两个mysql变量。我想把"Date"加上"terms"(这是一组天数::30,60,90)来生成"Due_Date"。

home。

  $query = mysql_query("select * from Book1");
    $query = mysql_query("SELECT id, rep, Date, Name, P_O, ADDDATE(Date, Terms) AS Due_Date, Terms, GREATEST(DATEDIFF(NOW(), Due_Date), 0) AS Aging, Open_Balance from Book1");
?>
<div id="wrapper">
    <!-- Sidebar -->
    <div id="sidebar-wrapper">
        <ul class="sidebar-nav">
            <li class="sidebar-brand">
                <a href="#">
                    Quickbooks Invoices
                </a>
            </li>
            <li>
                <a href="#">Home</a>
            </li>
            <li>
                <a href="addInvoice.php">Add Invoice</a>
            </li>
        </ul>
    </div>
    <!-- /#sidebar-wrapper -->
    <!-- Page Content -->
    <div id="page-content-wrapper">
        <div class="container-fluid">
            <div class="row">
                <div class="col-lg-12">
                    <h1>Quickbook Invoices</h1>
                    <a href="#menu-toggle" class="btn btn-default" id="menu-toggle">Toggle Menu</a>
                    <button class="btn btn-primary" id="MyTableBtn">Number of Invoices</button>
                </div>
            </div>
            <div class="row">
                <div class="col-md-12">
                    <table class="table table-bordered table-striped table-responsive sortable" id="MyTable">
                        <tr class="header">
                            <td>id</td>
                            <td>Rep</td>
                            <td>Date Services Rendered</td>
                            <td>Name</td>
                            <td>P_O</td>
                            <td>Due Date</td>
                            <td>Terms</td>
                            <td>Aging</td>
                            <td>Open Balance</td>
                            <td>remove</td>
                        </tr>
                        <?php 
                            while($row = mysql_fetch_array($query)) {

                                $className ="";
                                if ($row['Aging'] >= 45)
                                {
                                    $className="danger";
                                }
                                else if($row['Aging'] >= 25 && $row['Aging'] <= 44)
                                {
                                    $className="warning";
                                }
                                echo "<tr class='$className'>";
                                echo "<td>".$row['id']."</td>";
                                echo "<td>".$row['Rep']."</td>";
                                echo "<td>".$row['Date']."</td>";
                                echo "<td>".$row['Name']."</td>";
                                echo "<td>".$row['P_O']."</td>";
                                echo "<td>".$row['Due_Date']."</td>";
                                echo "<td>".$row['Terms']."</td>";
                                echo "<td>".$row['Aging']."</td>";
                                echo "<td>".$row['Open_Balance']."</td>";
                                echo "<td><a href='deletepage.php?id=" .$row['id']. "' value='" .$row['id']. "' class='btn btn-success'> Paid</a></td>";
                            }
                        ?>
                    </table>
                </div>
            </div>
        </div>
    </div>
    <!-- /#page-content-wrapper -->
</div>

因此它必须根据所设置的条款确定到期日,因此30=30天=从他们的发票发出之日起1个月。因此date= 10/23/2015, terms=30 Due_Date = 11/23/2015,然后根据新计算的Due_Date确定老化。

addInvoice.php

//escape user inputs for security
$rep = mysqli_real_escape_string($link, $_POST['rep']);
$date = mysqli_real_escape_string($link, $_POST['Date']);
$name = mysqli_real_escape_string($link, $_POST['name']);
$P_O = mysqli_real_escape_string($link, $_POST['P_O']);
$due_date = mysqli_real_escape_string($link, $_POST['Due_Date']);
$terms = mysqli_real_escape_string($link, $_POST['terms']);
$aging = mysqli_real_escape_string($link, $_POST['aging']);
$open_balance = mysqli_real_escape_string($link, $_POST['open_balance']);
//attempt insert query execution
$sql = "INSERT INTO Book1 (Rep, Date, Name, P_O, Due_Date, Terms, Aging, Open_Balance)
VALUES ('$rep', '$date', '$name', '$P_O', 'ADDDATE(Date, Terms) AS $due_date', '$terms', 'GREATEST(DATEDIFF(NOW(), Due_Date), 0) AS $aging', '$open_balance')";
if(mysqli_query($link, $sql)){
    header("location: Home.php");
} else {
    echo "ERROR: Could not execute $sql." .mysqli_error($link);
}
//close connection
mysqli_close($link);

现在的问题是,当我添加一个新的发票,它将计算到期日完美,但现在它不会计算老化。任何帮助吗?

SELECT id,
       rep,
       Date,
       Name,
       P_O,
       ADDDATE(Date, Terms) AS DueDate,
       Terms,
       GREATEST(DATEDIFF(NOW(), ADDDATE(Date, Terms)), 0) AS Aging,
       Open_Balance
from   Book1

检查你是否正在寻找:

echo "<td>". date('m/d/Y', strtotime($row['Date'] .' +'. $row['Terms'] .' days')) ."</td>";

function calculate_postpone_due_date($billingcycle)
{
switch($billingcycle)
{
    case "Monthly":         $months = 1; break;
    case "Quarterly":       $months = 3; break;
    case "Semi-Annually":   $months = 6; break;
    case "Annually":        $months = 12; break;
    case "Biennially":      $months = 24; break;
    case "Triennially":     $months = 36; break;
    default:                $months = 0; break;
}

if ($months == 0)
    return FALSE;    
$today = date('Y-m-d');
$next_due_date = strtotime($today.' + '.$months.' Months');
return date('Y-m-d', $next_due_date);
}

试试这个,

$NewDate = date('Y-m-d', strtotime($day . " $terms"));
echo $NewDate;