我有一个功能,将检查某人的状态是否为某个值,如果是,并且在一年之后,该人员状态将会更新。
这是代码
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
并且今天已更改。状态仍然有所改变。
感谢您的时间!
答案 0 :(得分:1)
$csvstatuschange
似乎很可能采用strtotime
无法理解的格式。结果它返回false
,它被转换为整数0
。 0
总是不到1年前。
确保格式是strtotime
可以读取的格式。我的偏好是Y-m-d H:i:s
,因为它是明确的。像d/m/Y
这样的格式可能不明确,因为m/d/Y
也经常使用(3月4日或4月3日是3/4/95
?)