PHP date()在$_SESSION中增加/减少周存储


PHP date() increase/decrease week store in $_SESSION

以下代码将每周增加/减少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;