需要帮助使用strtotime检查日期()

时间:2012-09-14 04:17:57

标签: php

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

这是代码

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并且今天已更改。状态仍然有所改变。

感谢您的时间!

1 个答案:

答案 0 :(得分:1)

$csvstatuschange似乎很可能采用strtotime无法理解的格式。结果它返回false,它被转换为整数00总是不到1年前。

确保格式是strtotime可以读取的格式。我的偏好是Y-m-d H:i:s,因为它是明确的。像d/m/Y这样的格式可能不明确,因为m/d/Y也经常使用(3月4日或4月3日是3/4/95?)