假设我有一个用户可以输入日期的文本框 (或者可以是现在使用php的当前日期的值) 和一个“保存”按钮,执行一些操作将数据保存到我的 数据库使它变得简单。
但在保存数据之前,我想执行此操作。
首先检查上个月是否已过去
如果上个月已过,则对新月或。执行某些操作 如果你还在这个月,还要再做一次行动
这是我到目前为止所做的:
<?php
$currentDate = $_POST['date_input'];
# Get the previous month
$sql1 = "SELECT SUBDATE('$currentDate', INTERVAL 1 MONTH) AS prevMonth";
$result1 = mysql_query($sql1);
while($row1 = mysql_fetch_array($result1)) {
$prevMonth = $row1['prevMonth'];
}
# Compare previous date from the current date
$sql2 = "SELECT DATE('$prevMonth') < DATE('$currentDate') AS compareDate";
$result2 = mysql_query($sql2);
while($row2 = mysql_fetch_array($result2)) {
$result_date = $row2['compareDate'];
}
if($result_date == 1) { if TRUE
# This is the new Month
# Perform some action in this new month
}
else {
# Your still in this Month
# Cannot perform this else since the result_date is always TRUE
} ?>
假设当前日期是'2015-01-11'(2015年1月11日)
前一个月将是'2014-12-11'(2014年12月11日)和条件 从2014年12月11日起,$ result_date将导致1&lt; 2015-01-11 TRUE 。
但我的问题是,当我还在这个月时,它不会触发else语句 因为将上个月的日期与当前月份的比较结果总是如此 使用上面的查询是真实的。
如何改进该代码以检查我是否仍然在这个月,然后执行一些 行动?有谁能够帮我?谢谢
答案 0 :(得分:0)
你为什么使用MySQL? 这毫无意义。 MySQL是一个数据库。
你可以用PHP来做。
<?php
$date = new DateTime('2000-01-20');
$date->sub(new DateInterval('P1M'));
echo $date->format('Y-m-d');
?>
有关详细信息,请参阅:http://php.net/manual/de/datetime.sub.php