如何在我的php页面中插入php日历

时间:2010-04-19 06:12:49

标签: php codeigniter

我想将php日历插入我的页面..  这是最好的方法

5 个答案:

答案 0 :(得分:2)

如果它让您的生活更轻松,you can embed a Google calendar

- EDIT--
好吧,根据帖子上的标签 - 我现在才注意到 - 你的问题是关于如何使用CodeIgnniter添加日历。
Here

$this->load->library('calendar');

echo $this->calendar->generate();

答案 1 :(得分:1)

更快的方法是,如果你有linux服务器,可以通过调用:

<?php
exec("/usr/bin/cal -h", $buff);
echo "<pre>".implode("\n", $buff)."</pre>";
?>

答案 2 :(得分:1)

使用此功能,我可以计算月份的第一天和月份的最后一个日期,并使用这些参数提交日期

function phpcal()
    {
        //$month=05;
        //$day=01;
        $cur_date = date('d-m-Y');
        list($day,$month,$year) = explode("-", $cur_date);



        //$year=2014;
         //$month = $this->input->post('monthnum');
        // $year = $this->input->post('yrnum');
         $zeroCnt = date("w", mktime(0,0,0,$month,$day,$year)); 
         $lastDay = date("t", strtotime($year . "-" . $month . "-01"));
        $tempArr = array('0'=>'January','1'=>'February','2'=>"March", '3'=>"April",'4'=>"May",'5'=>"June",'6'=>"July",
        '7'=>"August",'8'=>"September",'9'=>"October",'10'=>"November",'11'=>"December");
        if( (!empty($month)) && (!empty($year)) )
        {
            $cal[0] = $month+1;
            $cal[1] = $year;
            //$cal[2] = $tempArr[$month-1];
            $month-1;
            $data['cal'] = $cal;
        }
        // "March", "April","May","June","July","August","September","November","December"];
        for($i=0;$i<$zeroCnt;$i++)
        {
            $dateArr[$i] = 0;
        }

        for($j=1,$i=$zeroCnt;$j<=$lastDay;$i++,$j++)
        {
            $dateArr[$i] = $j ;         
        }
        $data['zeroCnt'] = $zeroCnt;
        $data['lastDay'] = $lastDay;
        $data['dateArr'] = $dateArr;
        $data['month'] = $month;
        $data['year'] = $year;

        $this->load->view('phpcal',$data);


    }

答案 3 :(得分:0)

您指的是像jQuery's Datepicker这样的日期选择器吗?

答案 4 :(得分:0)

日历班

Calendar类使您可以动态创建日历。您可以通过使用日历模板来格式化日历,从而可以100%控制其设计的各个方面。此外,您可以将数据传递到日历单元格。

初始化课程 与CodeIgniter中的大多数其他类一样,Calendar类使用$this->load->library函数在您的控制器中初始化:

$this->load->library('calendar');

一旦加载,日历对象将可以使用:$ this-> calendar

显示日历

这是一个非常简单的示例,显示了如何显示日历:

$this->load->library('calendar');

echo $this->calendar->generate();

以上代码将根据您的服务器时间生成当前月份/年份的日历。要显示特定月份和年份的日历,您需要将此信息传递给日历生成功能:

$this->load->library('calendar');

echo $this->calendar->generate(2006, 6);

上面的代码将生成一个日历,显示2006年6月。第一个参数指定年份,第二个参数指定月份。

将数据传递到您的日历单元格

要向日历单元格添加数据,需要创建一个关联数组,其中键对应于您要填充的日期,并且数组值包含数据。该数组将传递到日历生成函数的第三个参数。考虑以下示例:

$this->load->library('calendar');

$data = array(
               3  => 'http://example.com/news/article/2006/03/',
               7  => 'http://example.com/news/article/2006/07/',
               13 => 'http://example.com/news/article/2006/13/',
               26 => 'http://example.com/news/article/2006/26/'
             );

echo $this->calendar->generate(2006, 6, $data);

使用上面的示例,第3、7、13和26天将成为指向您提供的URL的链接。

注意:默认情况下,假定您的阵列将包含链接。在下面解释日历模板的部分中,您将看到如何自定义如何处理传递到单元格的数据,以便传递不同类型的信息。

设置显示首选项

您可以设置七个首选项来控制日历的各个方面。通过在加载函数的第二个参数中传递一组首选项来设置首选项。这是一个示例:

$prefs = array (
               'start_day'    => 'saturday',
               'month_type'   => 'long',
               'day_type'     => 'short'
             );

$this->load->library('calendar', $prefs);

echo $this->calendar->generate();

上面的代码将在星期六开始日历,使用“长”月份标题和“短”日期名称。以下是有关首选项的更多信息。

显示下一个/上个月的链接 要允许日历通过下一个/上一个链接动态递增/递减,您需要设置与以下示例类似的日历代码:

    $prefs = array (
                   'show_next_prev'  => TRUE,
                   'next_prev_url'   => 'http://example.com/index.php/calendar/show/'
                 );

    $this->load->library('calendar', $prefs);

echo $this->calendar->generate($this->uri->segment(3), $this->uri->segment(4));

关于上述示例,您会注意到一些事情:

您必须将"show_next_prev"设置为TRUE。 您必须在“ next_prev_url”首选项中将URL提供给包含日历的控制器。 您必须通过出现的URI段将“年”和“月”提供给日历生成功能(注意:日历类会自动将年/月添加到您提供的基本URL中。)。 创建日历模板 通过创建日历模板,您可以100%控制日历的设计。日历的每个组成部分都将放置在一对伪变量中,如下所示:

$prefs['template'] = '

   {table_open}<table border="0" cellpadding="0" cellspacing="0">{/table_open}

   {heading_row_start}<tr>{/heading_row_start}

   {heading_previous_cell}<th><a href="{previous_url}">&lt;&lt;</a></th>{/heading_previous_cell}
   {heading_title_cell}<th colspan="{colspan}">{heading}</th>{/heading_title_cell}
   {heading_next_cell}<th><a href="{next_url}">&gt;&gt;</a></th>{/heading_next_cell}

   {heading_row_end}</tr>{/heading_row_end}

   {week_row_start}<tr>{/week_row_start}
   {week_day_cell}<td>{week_day}</td>{/week_day_cell}
   {week_row_end}</tr>{/week_row_end}

   {cal_row_start}<tr>{/cal_row_start}
   {cal_cell_start}<td>{/cal_cell_start}

   {cal_cell_content}<a href="{content}">{day}</a>{/cal_cell_content}
   {cal_cell_content_today}<div class="highlight"><a href="{content}">{day}</a></div>{/cal_cell_content_today}

   {cal_cell_no_content}{day}{/cal_cell_no_content}
   {cal_cell_no_content_today}<div class="highlight">{day}</div>{/cal_cell_no_content_today}

   {cal_cell_blank}&nbsp;{/cal_cell_blank}

   {cal_cell_end}</td>{/cal_cell_end}
   {cal_row_end}</tr>{/cal_row_end}

   {table_close}</table>{/table_close}
';

$this->load->library('calendar', $prefs);

echo $this->calendar->generate();