检查上个月是否已经过了mysql

时间:2015-01-11 05:14:05

标签: php mysql

假设我有一个用户可以输入日期的文本框 (或者可以是现在使用php的当前日期的值) 和一个“保存”按钮,执行一些操作将数据保存到我的 数据库使它变得简单。

但在保存数据之前,我想执行此操作。

  1. 首先检查上个月是否已过去

  2. 如果上个月已过,则对新月或。执行某些操作 如果你还在这个月,还要再做一次行动

  3. 这是我到目前为止所做的:

    <?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语句  因为将上个月的日期与当前月份的比较结果总是如此  使用上面的查询是真实的。

    如何改进该代码以检查我是否仍然在这个月,然后执行一些  行动?有谁能够帮我?谢谢

1 个答案:

答案 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