0

我有一个功能可以检查某人的状态是否是某个值,如果是,并且在一年后,该人的状态将被更新。

这是代码

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,它被强制转换为 integer 00永远不会超过 1 年前。

确保格式是一种可以被strtotime. 我的偏好是Y-m-d H:i:s因为它是明确的。像这样的格式d/m/Y可能会模棱两可,因为m/d/Y它也经常使用(是3/4/953 月 4 日还是 4 月 3 日?)

于 2012-09-14T04:30:48.543 回答