Php 如何自动更改插入数据库的时间戳的间隔?

Php 如何自动更改插入数据库的时间戳的间隔?,php,mysql,Php,Mysql,背景:我目前正在建设一个摄影画廊,每2小时发布一张新照片。当我处理并上传每个图像并将其信息存储在数据库中时,我会运行一个检查,查看当前是否有图像排队等待将来发布。下面举例说明这张支票 $last_added = mysql_query("SELECT date FROM images ORDER BY date DESC"); $last_added = mysql_fetch_row($last_added); $last_added = strtotime($last_added[0]);

背景:我目前正在建设一个摄影画廊,每2小时发布一张新照片。当我处理并上传每个图像并将其信息存储在数据库中时,我会运行一个检查,查看当前是否有图像排队等待将来发布。下面举例说明这张支票

$last_added = mysql_query("SELECT date FROM images ORDER BY date DESC");
$last_added = mysql_fetch_row($last_added);
$last_added = strtotime($last_added[0]);
    if($last_added < time() - 7200):
        $time = time();
    else:
        $time = $last_added + 7200;
    endif;

$timestamp = date( 'Y-m-d H:i:s', $time );

mysql_query("INSERT INTO images (name,date,artist,tags,id) VALUES ('".$name."','".$timestamp."','".$artist."','".$tags."','".$id."')");
$last\u added=mysql\u查询(“按日期描述从图像中选择日期”);
$last\u added=mysql\u fetch\u行($last\u added);
$last_added=strotime($last_added[0]);
如果($last_added
基本上,它会抓取具有最高日期的图像,并检查它是在过去还是在未来。如果是过去的,它用当前时间戳标记最新图像;如果不是过去的,它用时间戳标记最新图像,时间戳在数据库中已经存在的最高图像之后2小时

我把它设置成这样是因为我没有时间每天添加新的图片,这使得它们可以在我不在的时候及时发布,保持网站的活力和更新

问题:但是,当我有时间时,我想添加更多图像,而不是在未来30天内添加,我想将间隔时间从2小时减少到1小时…然后可能从1小时减少到30分钟,等等

有没有一种方便的方法可以先检查最新的图像(比如今天+30天),然后检查开始填充间隔,这样如果最新的时间戳符合我们的标准,那么添加的下一个图像将在即将发布的下一个图像1小时后添加(填补它与2小时后发布的映像之间的间隔)。然后,在这之后的映像将在第二个未来排队映像填补该间隔间隔1小时后添加,以此类推

目标是我可以继续标记和添加图像,它会自动让我为未来排队,并根据我已经排队的距离自动缩短间隔


如果我不够具体,请让我知道。如果需要,我很乐意澄清。

当然。以下是我要做的:

首先,创建两列…一列是“添加的”日期时间,另一列是“发布的”日期时间。
添加的日期时间是您将它们放入数据库的日期时间,发布的日期时间是它们在您网站上的帖子中显示的日期时间

确定每天要发布的图像的最小和最大数量。因此,如果你每天至少有1个,最多12个,你希望你的脚本提前7天考虑,你有90个图像准备好了,然后你希望脚本放置84个图像,每12个小时一次,如果你准备好了42个图像,脚本将放置所有的42个,每隔4小时。如果你只准备了3张图片,脚本会每隔1天放置3张。有意义吗

创建一个脚本,每小时左右在cron作业中运行一次……您认为有必要的任何操作。在此脚本中执行以下操作:

  • 从添加为NULL的图像中选择COUNT(*);
    (这将确定您必须处理的图像数量。)
  • 从图像中选择MAX(posted);
    (这决定了上次发布图像的时间。)
  • 接下来,我们计算出图像之间的时间间隔。使用我的示例参数,这是
    (7/imagecount)*24
    。如果这大于24(意味着每个图像24小时),则使用24。如果这小于2(意味着每个图像2小时),则使用2
  • 计算每张图片之间的时间间隔,并确定自上次发布图片以来是否经过了足够的时间
  • 如果有,
    updateimagessetposted=NOW(),其中id=12345
    。否则,什么也不做
  • 脚本结束
  • 因此,此脚本将每小时运行一次,并检查是否是发布新图像的时间。如果不是,则不执行任何操作。如果是,则只发布一个。在下一个小时,它将重新计算,从而考虑任何新图像或条件


    我希望这个流程是有意义的。毫无疑问,还有其他方法可以解决这个问题,但我认为这与您所寻找的最接近。

    当然。以下是我要做的:

    首先,创建两列…一列是“添加的”日期时间,另一列是“发布的”日期时间。
    添加的日期时间是您将它们放入数据库的日期时间,发布的日期时间是它们在您网站上的帖子中显示的日期时间

    确定每天要发布的图像的最小和最大数量。因此,如果你每天至少有1个,最多12个,你希望你的脚本提前7天考虑,你有90个图像准备好了,然后你希望脚本放置84个图像,每12个小时一次,如果你准备好了42个图像,脚本将放置所有的42个,每隔4小时。如果你只准备了3张图片,脚本会每隔1天放置3张。有意义吗

    创建一个脚本,每小时左右在cron作业中运行一次……您认为有必要的任何操作。在此脚本中执行以下操作:

  • 从添加为NULL的图像中选择COUNT(*);
    (这将确定您必须处理的图像数量。)
  • 从图像中选择MAX(posted);
    (这决定了上次发布图像的时间。)
  • 接下来,我们计算出图像之间的时间间隔。使用我的示例参数,这是
    (7/imagecount)*24
    。如果这大于24(意味着每个图像24小时),则使用24。如果这小于2(意味着每个图像2小时),则使用2
  • 在每个图像之间留出时间,并确定是否有足够的ti