Php 根据时间更新记录状态
我在找一些指导。基本上,我正在为一个工作数据库开发一个系统。用户可以申请网站上的招聘广告 当有人提交新作业时,他们需要指定申请的截止日期/时间。这通常是日期和时间,例如:2011年1月20日16:00 我的问题是,如何确定一个工作是开放的还是关闭的。我有两种方法可以考虑这样做:Php 根据时间更新记录状态,php,mysql,Php,Mysql,我在找一些指导。基本上,我正在为一个工作数据库开发一个系统。用户可以申请网站上的招聘广告 当有人提交新作业时,他们需要指定申请的截止日期/时间。这通常是日期和时间,例如: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进程中的作业
只要确保时间都在同一时区进行比较,就可以在决定哪些工作应该结束时简化生活 我怀疑您还需要一个状态标志,以防作业因其他原因需要关闭。您还可以区分已关闭的作业和已过期的作业(即:状态仍处于打开状态,但过期日期已过)是的。跟踪状态和过期时间可能会使查询复杂一些。我认为查询可以简化为只检查作业的“状态”,如果有一个运行的服务器端进程会自动将过期的作业标记为已关闭。