如何在mysql和php中检查上个月是否已经过去?

如何在mysql和php中检查上个月是否已经过去?,php,mysql,Php,Mysql,我有一个“保存”按钮和一个文本框,其中填充了php中当前日期的值 在用户按下save按钮后,我的php脚本必须检查上个月是否已经过去。例如: 文本框值='2015-02-01'(假设现在是当前日期) 然后用户单击“保存”按钮 我的php脚本必须说明“2015-01-01”的日期已经过去,您的日期是“2015-02-01”月份。 对于我的if条件,我确实需要: //if a month has passed, # echo "Your in the new month"; //else

我有一个“保存”按钮和一个文本框,其中填充了php中当前日期的值

在用户按下save按钮后,我的php脚本必须检查上个月是否已经过去。例如:

文本框值='2015-02-01'(假设现在是当前日期)

然后用户单击“保存”按钮

我的php脚本必须说明“2015-01-01”的日期已经过去,您的日期是“2015-02-01”月份。 对于我的if条件,我确实需要:

//if a month has passed, 
    # echo "Your in the new month";
//else
    # echo "Your still in this month";
我认为这与这个问题有关:

"SELECT SUBDATE('$currentDate', INTERVAL 1 MONTH) AS prevMonth";

但是我如何才能完成它并将其应用到php中的条件中呢?这里真的需要帮助。谢谢

我会用PHP而不是MySQL来做这件事:

<?php
// Compare mysql result in Y-m format to input in same format
if (date('Y-m', strtotime($mysqlResult)) < date('Y-m', strtotime($textboxValue)))
    echo "You're in the new month (" . date('m') . ")";
else
    echo "You're still in this month."

如果不知道你在新的一个月里对输出的确切要求,这就是我得到的

$time = strtotime('2015-02-01');
//Change the string literal to your $_POST variable
if((int)date('j',$time)==1){
    echo "The month of ". date('Y-m-01',$time-1)." has passed";
}else{
    echo "Current month, nevermind";
}

让我知道你的要求是什么,我希望能帮助你解决这个问题。在这种情况下,真的不需要MySQL。

为什么不使用$mysqlResult的来源呢?新的一个月到底是什么组成的?只是日期是一个月的第一天吗?如果日期是“2015-02-13”呢?它还会返回“2015-01-01月已过”吗?是的。不考虑天数,这里只关心月份。@Larcy也许我不完全理解你问题中的“前一个月”是从哪里来的,但是
$mysqlResult
代表你试图比较的前一个月。在您上面的示例中,这将是2015-01-01
$textboxValue
表示当前日期,对吗?假设当前月份现在是“2015-02-15”,那么“2015-01-15(该日期内的任何一天)”的月份已经过去了。如果现在的日期是“2015-03-15”,那么“2015-02-15”这个月又过去了。我之所以要这样做,是因为我需要在将数据保存到数据库时使用此条件。在保存期间,当月和上月都有单独的操作。请帮我做这个。谢谢这个脚本到底要处理什么?如何处理?据我所知,你只需要不断检查当前日期与1个月前的日期,如果你试图检查当前时间或日期是否在这两个时间之间,它总是会是真的(除非你试图将其设置为接受参数?),请编辑你的原始问题,使其更清楚。