0

誰かのステータスが特定の値であるかどうかを確認し、そうである場合はその1年後に、その人のステータスが更新される機能があります。

これがコードです

if (strtotime($csvstatuschange) < strtotime("-365 day") && (
        $csvstatus == "Non-Active, Unable to Monitor - Incidental Business use Exclusion" ||
        $csvstatus == "Non-Active - Insurance Cancelled" ||
        $csvstatus == "Non-Active - Employee Not Covered Under Listed Policy" ||
        $csvstatus == "Non-Active - No Longer Employed" ||
        $csvstatus == "Non-Active - Other"
)) {
    $status = "Archived";
    $wsth = $DBH->prepare("
        UPDATE csvdata 
        SET status = :status, 
            statuschangedate = :date 
        WHERE username = :username
    ");
    $wsth->execute(array(
        ':status' => $status, 
        ':username' => $csvusername, 
        ':date' => $date
    ));
}

ですから、私の問題は、たとえば、個人のステータスがNon-Active - Insurance Cancelledで、今日変更された場合です。ステータスはまだ変更されます。

お時間をいただきありがとうございます!

4

1 に答える 1

1

それは意味をなさない$csvstatuschange形式である可能性が高いようです。strtotime結果として、false整数にキャストされるを返し0ます。0常に1年未満前になります。

形式がで読み取れる形式であることを確認してくださいstrtotime。私の好みはY-m-d H:i:sそれが明白だからです。のような形式も頻繁に使用されるd/m/Yため、あいまいになる可能性があります( 3月4日または4月3日ですか?)m/d/Y3/4/95

于 2012-09-14T04:30:48.543 に答える