Search code examples
phpsessiondateincrementdescendant

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


The following code will increase/decrease week by 1: (yes, my application requires the value to be stored in a $_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;

However I would like it to reset at week 52 (new year). How can I do this? I'm new to programming.


Solution

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