我正在尝试在PHP中创建一个逻辑,它返回给定周数之前4周的周数,而不是当前的周数。给定周数的输入是$ argv [1],因为脚本是执行CLI的。
$FOURWEEKSAGO = date("W", strtotime("-4 week"));
以上示例是使用当前时间戳,但我正尝试对以下内容执行相同的操作。下面的示例不起作用,但它说明了我想要做的事情。
$FOURWEEKSAGO = $argv[1], strtotime("-4 week");
该功能必须确保在第2周时它将倒数并产生51(4周前)
一点帮助将不胜感激
答案 0 :(得分:2)
让$inputWeek
为数字输入值,$week
为数字结果周。
如果去年不是闰年:
$week = ($inputWeek + 48) % 52
如果去年是闰年:
$week = ($inputWeek + 49) % 53
为了确定去年是否是闰年,我假设您可以使用:
if ((date("Y") - 2017) % 4 == 0)
...自2017年起是一个"一年又一年的闰年",因此每隔4年就会出现一次。
正如评论中所指出的,如果输入为0
,则代码将获得4
,可以使用if
语句修复。请注意,区分第0周是否与第53周或第52周相同非常重要。总而言之:
if ((date("Y") - 2017) % 4 == 0)
{
$week = ($inputWeek + 49) % 53;
if ($week == 0) $week = 53;
}
else
{
$week = ($inputWeek + 48) % 52;
if ($week == 0) $week = 52;
}