gpt4 book ai didi

php strtotime 用三个栏来检查 sql 中状态的更改

转载 作者:行者123 更新时间:2023-11-29 08:22:44 24 4
gpt4 key购买 nike

嗨,我正在做一个项目,但我的大脑一片空白,所以我把它告诉全世界来帮助我。

我有一个像这样的MySQL数据库项目的开始日期,通知日期是结束后一周,然后是过期时的结束日期

+table+
|id| start | notice | end |status|
|01|2013-09-01|2013-9-23|2013-10-01|Active|
....

PHP

$query = mysql_query("SELECT *, 
DATE_FORMAT(`start_date`,'%d-%m-%Y') as fmt_start_date,
DATE_FORMAT(`notice_date`,'%d-%m-%Y') as fmt_notice_date,
DATE_FORMAT(`end_date`,'%d-%m-%Y') as fmt_end_date
FROM `$table` ORDER BY `fmt_start_date` ASC ");

while ($row = mysql_fetch_array($query)) {
$start = strtotime($row["fmt_start_date"]);
$notice = strtotime($row["fmt_notice_date"]);
$end = strtotime($row["fmt_end_date"]);
$current = strtotime(date('d-m-Y'));

if( $notice >= $current && $end < $current){
mysql_query("UPDATE `$table` SET `status` = 'Notice' WHERE `id` ='{$row["id"]}';");
} elseif ( $end <= $current ){
mysql_query("UPDATE `$table` SET `status` = 'Expire' WHERE `id` ='{$row["id"]}';");
} else {
mysql_query("UPDATE `$table` SET `status` = 'Active' WHERE `id` ='{$row["id"]}';");
}
}

我想要它做的是,随着日期的经过,它的状态会改变,所以当它处于通知周时,状态会更改为通知,当它已经过了结束时,它就会过期,当它还没有通过这些时保持活跃的日期。

我知道我想要如何完成它,但我的头脑对这个方法一片空白。请帮助我上网。

最佳答案

试试这个:

if ($current < $notice){
//has not reached notice (Active)

} elseif ($current < $end){
//has not reached end but has reached notice (Notice)

} else{
//has reached end (Expired)

}

关于php strtotime 用三个栏来检查 sql 中状态的更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18901982/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com