如何为PHP日历值设置默认视图

如何为PHP日历值设置默认视图,php,mysql,date,calendar,Php,Mysql,Date,Calendar,我有一个事件日历,根据用户选择的4个下拉菜单选项,我可以从数据库中打印某些信息,这些信息是周月年和订单,当提供所有选项时,应用程序显示良好。现在的问题是,我希望将事件日历的默认视图设置为当前时间的周月和年,这样用户就不必选择和下拉菜单来查看 当我实现下面代码的一部分时,事件日历上没有发生任何事情 PHP function calendar() { if(!isset($_POST['submit'])){ $m = date('M'); $day = date('j');

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

当我实现下面代码的一部分时,事件日历上没有发生任何事情

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  }
        }
    }
   ?> 
函数日历()
{   
如果(!isset($_POST['submit'])){
$m=日期('m');
$day=日期('j');
$Y=日期('Y');
如果($day>=29){
$j=5;
}其他($day>=22和$day<28){
$j=4;
}其他($day>=15和$day<22){
$j=3;
}其他($day>=8和$day<15){
$j=2;
}否则{
$j=1;
}
}
如果(isset($_POST['submit']){
如果($_POST['submit']==“”){
回应“今天没有事件”;
} 
$j=mysql\u real\u escape\u字符串($\u POST['week']);
$m=mysql\u real\u escape\u字符串($\u POST['month']);
$Y=mysql\u real\u escape\u字符串($\u POST['year']);
$o=mysql\u real\u escape\u字符串($\u POST['order']);
$date=“”.$j.”,“$Y.”;
$query1=“选择*
来自newcaldemo
其中eventweek=“$j.”
月份=“$m.”
年份=“$Y.”
由$o ASC订购”;
$run1=mysql\u查询($query1);
$norows=mysql_受影响的_行();
如果($norows<1){
回显“第$j,$Y周无事件”;
}否则{
回显“第j周的事件,$m$Y
”; 而($row1=mysql\u fetch\u数组($run1)){?>
名称:
时间:
地点:

我在大学时为我的论文做了类似的事情-获得所需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
我还可以向您展示我将日历打印为表格的方式,表格的显示取决于月份的起始日期和天数(未使用的单元格显示为灰色等)

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