根据时间更新记录状态

时间:2011-01-15 18:28:14

标签: php mysql

我正在寻找一些指导。基本上我正在为Jobs数据库开发一个系统。用户可以申请在网站上公布的招聘信息。

当有人提交新作业时,他们需要指定申请的截​​止日期/时间。这通常是日期和时间,例如:2011年1月20日16:00

我的问题是,如何确定作业是否仍处于开放状态或已关闭状态。我可以通过两种方式来实现这一目标:

  1. 在表格中有一个状态字段,状态1 =打开,状态0 =已关闭。现在问题是,一旦达到关闭时间,状态将需要自动设置为0.

  2. 使用PHP检查关闭时间是否大于当前时间 - 如果是,则意味着它已关闭且用户无法申请该工作。

  3. 此外,作业的所有者将能够重新打开已关闭的作业,或在关闭日期之前手动关闭作业。

    这样做的最佳方式是什么?

3 个答案:

答案 0 :(得分:1)

使用选项3:仅查询未到期的作业;您可以通过将NOW()与存储的日期时间进行比较来测试作业是否已过期,如果NOW() < expire_time则作业已打开。

答案 1 :(得分:1)

我会使用这两种方法。状态字段可用于激活作业,或将来停用。也许它可以呈现多种状态,例如“草稿”,“活跃”,“封闭”。

时间功能很好,因为您可以使用它来自动关闭PHP进程的作业。

只需确保在同一时区内对所有时间进行比较,以确定在确定应关闭哪些工作时让您的生活变得简单。

答案 2 :(得分:0)

您的假设“一旦达到关闭时间,状态需要自动设置为0”是不正确的。

您需要做的只是在数据库中查询开始和关闭日期/时间内的实时作业。例如:

SELECT <fields> FROM <job table> WHERE
            job_startdate <= NOW() 
            AND job_enddate >= NOW()
            AND job_status=1 
            ...

这将确保仅显示开始和结束日期内的打开作业。