簡體   English   中英

單擊按鈕可獲得增量減少日

[英]get increment decrement day once clicked button

我有下一個和上一個按鈕,這是獲取下一個和上一個總日月份年份。 我沒有問題要獲得下一個和上個月,但是有問題要獲得下一個和上一個合計日。

方案1:用戶單擊“下一步”按鈕,頁面將顯示下個月的總天數(此處沒有問題)

方案2:用戶單擊上一個按鈕,頁面將顯示上個月的總天數(此處沒有問題)

情況3:用戶單擊“下一步”按鈕,頁面將顯示下個月的總天數(此處沒有問題。),但是,用戶單擊“按鈕”然后單擊“上一個”按鈕后,它將顯示錯誤的前一個月的總天數。

方案3的示例:當月'NOVEMBER'的總天數為30,下個月DECEMBER的總天數為31。如果用戶單擊next的按鈕將轉到下個月,則頁面將顯示總天數31。前一個按鈕(返回到當前月份),該頁面顯示的錯誤總天數為31。應為30。

碼:

<?php
session_start();

 include 'theme-head.php'; 
 include 'theme-header.php';

 $currentmonth = date('m');
 $currentyear = date("Y");
 $currentyeartotday = date('t');

 $months = array('January','February','March','April','May','June','July','August','September','October','November','December');
 //$years = array('2010','2011','2012','2013','2014','2015','2016','2017','2018','2019','2020');

//sets initial value of SESSION variables to current month, year and total day
if(!isset($_SESSION['month'])){
$_SESSION['month'] = $currentmonth;
}
if(!isset($_SESSION['year'])){
$_SESSION['year'] = $currentyear;
}
if(!isset($_SESSION['totalday'])){
$_SESSION['totalday'] = $currentyeartotday;
}

//increments or decrements year month and totalday based on user input
if(isset($_POST['NextMonth'])){
if ($_SESSION['month']+1 == 13){
    ++$_SESSION['year'];
}
$_SESSION['month'] = ($_SESSION['month']+1 < 13) ? ++$_SESSION['month'] : 1;

 $_SESSION['ic'] = isset($_SESSION['ic']) ? ++$_SESSION['ic'] : 1;
 $ic1 = $_SESSION['ic'];                       
 $_SESSION['totalday'] = date('t', strtotime("+$ic1 month ", strtotime($_SESSION['year'])));
 }else{
       unset($_SESSION['ic']);
 }

if(isset($_POST['LastMonth'])){
  if($_SESSION['month']-1 == 0){ 
    --$_SESSION['year'];
  }
  $_SESSION['month'] = ($_SESSION['month']-1 > 0) ? --$_SESSION['month'] : 12;



  $_SESSION['dc'] = isset($_SESSION['dc']) ? ++$_SESSION['dc'] : 1;
  $dc1 = $_SESSION['dc'];
  $_SESSION['totalday'] = date('t', strtotime("-$dc1 month ", strtotime($_SESSION['year'])));
  }
  else{
       unset($_SESSION['dc']);
  }
//current year month and totalday based on user input
if(isset($_POST['Today'])){
$_SESSION['year'] = $currentyear;
$_SESSION['month'] = $currentmonth;
$_SESSION['totalday'] = $currentyeartotday;
}
//print_r($_SESSION); //uncomment to keep tabs on your variables
?>

<div  class="col-md-2">
  <input type="text" placeholder="date month year" readonly>
</div>

<div class="col-md-9">
  <div class="well"> 
    <form method="post">
      <button class="fa fa-chevron-circle-left btn-primary btn btn-xs" name="LastMonth" type="submit"></button>
      <button class="fa fa-chevron-circle-right btn-primary btn btn-xs" name="NextMonth" type="submit"></button>
<?php
if(isset($_POST['NextMonth'])){ 
?>
<button class="btn-primary btn btn-xs" name="Today" type="submit">this month</button>
<?php }
elseif (isset($_POST['LastMonth'])) {
?>
<button class="btn-primary btn btn-xs" name="Today" type="submit">this month</button>
<?php }
else{
?>
<button class="btn-primary btn btn-xs" name="Today" type="submit" disabled>this month</button>
<?php }?>

    <div class="pull-right">
      <h2><?php echo ''. $months[$_SESSION['month']-1] .' '. $_SESSION['year'].''?></h2> <?php echo''. $_SESSION['totalday'] .' ' ?>
    </div>
   </form>
  </div>
</div>

當用戶單擊下一個按鈕然后單擊上一個按鈕時,如何獲得確切的總天數我沒有任何邏輯。

我知道也許應該使用IF語句來解決此問題,但是關於如何使用IF語句的邏輯仍然沒有這個想法。

已經有日期功能可用於查找天數

cal_days_in_month()

這將簡化您的代碼。

看一下

 <?php
    session_start();

     include 'theme-head.php'; 
     include 'theme-header.php';

     $currentmonth = date('m');
     $currentyear = date("Y");
     $currentyeartotday = date('t');

     $months = array('January','February','March','April','May','June','July','August','September','October','November','December');
     //$years = array('2010','2011','2012','2013','2014','2015','2016','2017','2018','2019','2020');

    //sets initial value of SESSION variables to current month, year and total day
    if(!isset($_SESSION['month'])){
        $_SESSION['month'] = $currentmonth;
    }
    if(!isset($_SESSION['year'])){
        $_SESSION['year'] = $currentyear;
    }
    if(!isset($_SESSION['totalday'])){
        $_SESSION['totalday'] = $currentyeartotday;
    }
    //increments or decrements year month and totalday based on user input
    if(isset($_POST['NextMonth'])) {
        if ($_SESSION['month']+1 == 13){
            ++$_SESSION['year'];
        }
        $_SESSION['month'] = ($_SESSION['month']+1 < 13) ? ++$_SESSION['month'] : 1;
        $_SESSION['totalday'] = cal_days_in_month(CAL_GREGORIAN, $_SESSION['month'], $_SESSION['year']);
    }

    if(isset($_POST['LastMonth'])) {
      if($_SESSION['month']-1 == 0){ 
        --$_SESSION['year'];
      }
      $_SESSION['month'] = ($_SESSION['month']-1 > 0) ? --$_SESSION['month'] : 12;
      $_SESSION['totalday'] = cal_days_in_month(CAL_GREGORIAN, $_SESSION['month'], $_SESSION['year']);
    }
    //current year month and totalday based on user input
    if(isset($_POST['Today'])){
        $_SESSION['year'] = $currentyear;
        $_SESSION['month'] = $currentmonth;
        $_SESSION['totalday'] = $currentyeartotday;
    } ?>

    <div  class="col-md-2">
      <input type="text" placeholder="date month year" readonly>
    </div>

    <div class="col-md-9">
        <div class="well"> 
            <form method="post">
                <button class="fa fa-chevron-circle-left btn-primary btn btn-xs" name="LastMonth" type="submit">Last</button>
                <button class="fa fa-chevron-circle-right btn-primary btn btn-xs" name="NextMonth" type="submit">Next</button> <?php
                if (isset($_POST['NextMonth'])){  ?>
                    <button class="btn-primary btn btn-xs" name="Today" type="submit">this month</button> <?php
                } elseif (isset($_POST['LastMonth'])) { ?>
                    <button class="btn-primary btn btn-xs" name="Today" type="submit">this month</button> <?php     
                } else { ?>
                    <button class="btn-primary btn btn-xs" name="Today" type="submit" disabled>this month</button> <?php
                } ?>
                <div class="pull-right">
                    <h2><?php echo ''. $months[$_SESSION['month']-1] .' '. $_SESSION['year'].''?></h2> <?php
                    echo''. $_SESSION['totalday'] .' ' ?>
                </div>
           </form>
        </div>
    </div>

謝謝

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM