我想将php日历插入我的页面.. 这是最好的方法
答案 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}"><<</a></th>{/heading_previous_cell}
{heading_title_cell}<th colspan="{colspan}">{heading}</th>{/heading_title_cell}
{heading_next_cell}<th><a href="{next_url}">>></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} {/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();