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