以下代码将每周增加/减少1:(是的,我的应用程序要求将值存储在$_SESSION
.中
if (isset($_POST['decrease'])) {
$week_value = ($_SESSION['sess_week'] = $_SESSION['sess_week']-1);
}
else if (isset($_POST['increase'])) {
$week_value = ($_SESSION['sess_week'] = $_SESSION['sess_week']+1);
}
else {
$week_value = ($_SESSION['sess_week'] = date('W'));
}
echo $week_value;
然而,我希望它在第52周(新年)重置。我该怎么做?我是编程新手。
if (isset($_POST['decrease'])) {
$week_value = $_SESSION['sess_week'] == 1 ? 52 : --$_SESSION['sess_week'];
}
else if (isset($_POST['increase'])) {
$week_value = $_SESSION['sess_week'] == 52 ? 1 : ++$_SESSION['sess_week'];
}
else {
$week_value = ($_SESSION['sess_week'] = date('W'));
}
您可以使用date("W")
函数来获取当前时间的周数。如果是第1周,只需将其设置为1(如果从那里开始,则设置为0)。
您可以使用mktime()
作为日期函数中的第二个参数来验证输出,从而进行测试。
<?php
if (date("W")==1)
{
$week_value =1;
}
else
{
if (isset($_POST['decrease'])) {
$week_value = ($_SESSION['sess_week'] = $_SESSION['sess_week']-1);
}
else if (isset($_POST['increase'])) {
$week_value = ($_SESSION['sess_week'] = $_SESSION['sess_week']+1);
}
else {
$week_value = ($_SESSION['sess_week'] = date('W'));
}
}
?>
这样做的一种可能性如下。(我以为你的意思是,如果一周超过52,那就是1。此外,我添加了如果一周降到1以下,它将再次为52,因此是去年的最后一周)。
if (isset($_POST['decrease']))
{
$week_value=$_SESSION['sess_week']-1;
}
else
{
if (isset($_POST['increase']))
{
$week_value=$_SESSION['sess_week']+1;
}
else
{
$week_value=date('W');
}
}
if ($week_value>52)
{
$week_value=1;
}
else
{
if ($week_value<1)
$week_value=52;
}
$_SESSION['sess_week']=$week_value;
用52做模(%
)。
这样你就可以保证你的一周总是少于52周。
试试这个:
if( $week_value == 52 )$week_value = 0;