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

时间:2012-08-02 08:20:36

标签: php session date increment descendant

以下代码将逐周增加/减少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周(新年)重置。我怎样才能做到这一点?我是编程新手。

5 个答案:

答案 0 :(得分:1)

您可以使用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'));
        }
    }

?>

答案 1 :(得分:1)

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'));
}

答案 2 :(得分:1)

这样做的一种可能性如下。 (我认为你的意思是,如果一周超过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;

答案 3 :(得分:0)

以52为模数(%)。

这样你可以确保你的一周总是少于52岁。

答案 4 :(得分:-1)

试试这个:

if( $week_value == 52 )$week_value = 0;