【问题标题】:How to set a default view for PHP Calendar Values如何为 PHP 日历值设置默认视图
【发布时间】:2012-10-15 02:48:36
【问题描述】:

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

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

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  }
        }
    }
   ?> 

【问题讨论】:

    标签: php mysql date calendar


    【解决方案1】:

    我在大学时为我的论文做了类似的事情 - 获得所需 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
    

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

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

    【讨论】:

      猜你喜欢
      • 2012-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-16
      • 1970-01-01
      • 2014-12-26
      • 1970-01-01
      相关资源
      最近更新 更多