Php 根据时间更新记录状态

Php 根据时间更新记录状态,php,mysql,Php,Mysql,我在找一些指导。基本上,我正在为一个工作数据库开发一个系统。用户可以申请网站上的招聘广告 当有人提交新作业时,他们需要指定申请的截止日期/时间。这通常是日期和时间,例如:2011年1月20日16:00 我的问题是,如何确定一个工作是开放的还是关闭的。我有两种方法可以考虑这样做: 在表中有一个状态字段,状态1=打开,状态0=关闭。现在的问题是,一旦达到关闭时间,状态需要自动设置为0 使用PHP检查关闭时间是否大于当前时间-如果大于,则表示关闭,用户无法申请作业 此外,作业所有者将能够重新打开已关闭

我在找一些指导。基本上,我正在为一个工作数据库开发一个系统。用户可以申请网站上的招聘广告

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

我的问题是,如何确定一个工作是开放的还是关闭的。我有两种方法可以考虑这样做:

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

  • 使用PHP检查关闭时间是否大于当前时间-如果大于,则表示关闭,用户无法申请作业

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


    最好的方法是什么?

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

    您的假设“一旦达到关闭时间,状态将需要自动设置为0”是错误的

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

    SELECT <fields> FROM <job table> WHERE
                job_startdate <= NOW() 
                AND job_enddate >= NOW()
                AND job_status=1 
                ...
    
    从何处选择
    作业开始日期=现在()
    和作业状态=1
    ...
    

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

    我将使用这两种方法。状态字段可用于激活作业,或在将来停用作业。也许它可以具有多个状态,例如“草稿”、“活动”、“关闭”

    时间特性很好,因为您可以使用它自动关闭PHP进程中的作业


    只要确保时间都在同一时区进行比较,就可以在决定哪些工作应该结束时简化生活

    我怀疑您还需要一个状态标志,以防作业因其他原因需要关闭。您还可以区分已关闭的作业和已过期的作业(即:状态仍处于打开状态,但过期日期已过)是的。跟踪状态和过期时间可能会使查询复杂一些。我认为查询可以简化为只检查作业的“状态”,如果有一个运行的服务器端进程会自动将过期的作业标记为已关闭。