2

我有一个事件日历,根据用户选择的 4 个下拉菜单选项,我从数据库中打印出某些信息,这些是Week Month YearOrder,当提供所有选项时,应用程序显示良好。现在我遇到的问题是,我希望将事件日历的默认视图设置为当前时间week MonthYear这样用户就不必选择下拉菜单来查看它。

当我实现下面的代码部分时,事件日历上什么也没有发生

PHP

function calendar()
{   
if(!isset($_POST['submit'])){

   $m = date('M'); 
   $day = date('j'); 
   $Y = date('Y');

    if ($day >= 29) { 
         $j = 5; 
    }elseif($day >= 22  AND $day < 28) {
         $j = 4;
    }elseif($day >= 15  AND $day < 22) {
         $j = 3;
    }elseif($day >=8   AND $day < 15) {
         $j = 2;
    }else{
         $j = 1; 
    }
}
   if(isset($_POST['submit'])){ 
    if ($_POST['submit'] == ""){
            echo "No  Event for Today" ;
    } 
    $j = mysql_real_escape_string($_POST['week']);
    $m = mysql_real_escape_string($_POST['month']);
    $Y = mysql_real_escape_string($_POST['year']);
    $o = mysql_real_escape_string($_POST['order']);
    $date =" ".$j.", ".$Y." ";

    $query1 = " SELECT *
          FROM newcaldemo 
          WHERE eventweek = '".$j."'
          AND   month = '".$m."'
          AND   year  = '".$Y."'
          ORDER by $o ASC" ; 
            $run1 = mysql_query($query1);
            $norows = mysql_affected_rows();
            if ($norows < 1){
                echo "No Event(s) for Week $j, $Y" ;
            }  else {
                echo "Event(s) for Week $j, $m $Y <br></div> ";

                    while($row1 = mysql_fetch_array($run1)) {  ?>

                           <?php echo $row1['month']." " .$row1['day'] ; ?><br>
                            Name  : <?php echo $row1['eventname'] ; ?><br>
                            Time  : <?php echo $row1['eventtime'] ; ?><br> 
                            Venue : <?php echo $row1['eventplace'] ; ?><br>

          <?php  }
        }
    }
   ?> 
4

1 回答 1

0

我在大学时为我的论文做了类似的事情 - 获得所需 d/m/y 的部分(以及周围的部分,以防你要使用“下个月”和“上个月”标签)是以下:

//set months
if(!empty($_GET['m'])){
    $thisMonth = $_GET['m'];
    $lastMonth = $thisMonth - 1;
    $nextMonth = $thisMonth + 1;
}else{
    $lastMonth = date("n")-1;
    $thisMonth = date("n");
    $nextMonth = date("n")+1;
}

//set years
if(!empty($_GET['y'])){
    $thisYear = $_GET['y'];
}else{
    $thisYear = date("Y");
}

// Set days. mktime format: mktime(hr, min, sec, mth, day, yr)
$today = date("j"); 
$numDays = date ("t", mktime(0, 0, 0, $thisMonth, 1, $thisYear)); // Number of days in current month
$startDay = date ("w", mktime(0, 0, 0, $thisMonth, 1, $thisYear)); // Day the current month starts on

我还可以向您展示我将日历打印为表格的方式,其显示取决于月份的开始日期和其中的天数(未使用的单元格显示为灰色等)。

不用说我没有解释事件检查,因为这对你的问题来说是多余的:)

于 2013-05-07T17:46:38.313 回答