在PHP中每3小时后增加变量

时间:2015-11-08 20:28:37

标签: php wordpress loops time

我需要你们的一些想法。我正在考虑创建一个从17开始的计数器,每3个小时后它将增加1.然后在每周星期二凌晨12:00之后,计数器将再次重置为17并遵循相同的方法

我实际上会用它创建一个wordpress短代码,但我知道如何做到这一点,并没有为此寻求帮助。

我实际寻找的帮助就是我将如何在PHP上实现。因为我认为用for循环无法正常完成。所以,我要求的实际上是一些技巧和想法,你应该如何继续使用代码,可能是我可以用来获得这个结果的不同功能。

任何想法的人?

1 个答案:

答案 0 :(得分:2)

对于这种情况,我不推荐一个cron工作。您可以计算时间差异并使用它来计算已经过的小时数。

$varToIncrement = 17;

$now         = new DateTime('now');
$thisTuesday = new DateTime('this Tuesday 12:00');

# If this Tuesday 12:00 is in the past, use that
# Else use last Tuesday (last week)
if ($now > $thisTuesday) {
    $lastTuesday = $thisTuesday;
} else {
    $lastTuesday = new DateTime('last Tuesday 12:00');
}

# Calculate how many hours between the 2 dates
$hours = getHoursBetween($lastTuesday, $now);

# Increment our variable with the amount of hours divided by 3
# Also use floor() to round down
$varToIncrement += floor($hours / 3);

# Et voila!
echo $varToIncrement;

function getHoursBetween($date1, $date2)
{
    # Create a DateInterval (difference between dates)
    $diff = $date2->diff($date1);

    # Return difference in hours
    return $diff->h + ($diff->days * 24);
}