我需要你们的一些想法。我正在考虑创建一个从17开始的计数器,每3个小时后它将增加1.然后在每周星期二凌晨12:00之后,计数器将再次重置为17并遵循相同的方法
我实际上会用它创建一个wordpress短代码,但我知道如何做到这一点,并没有为此寻求帮助。
我实际寻找的帮助就是我将如何在PHP上实现。因为我认为用for
循环无法正常完成。所以,我要求的实际上是一些技巧和想法,你应该如何继续使用代码,可能是我可以用来获得这个结果的不同功能。
任何想法的人?
答案 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);
}