我在搜身时,用在PHP的日历上,但我所搜索的是日期。
但是,我只想的是一份简单的日历,显示我的日期,而没有带走。
我只需要日历像正常日历如何在我们的操作系统中运作一样。
是否有办法?
我在搜身时,用在PHP的日历上,但我所搜索的是日期。
但是,我只想的是一份简单的日历,显示我的日期,而没有带走。
我只需要日历像正常日历如何在我们的操作系统中运作一样。
是否有办法?
http://keithdevens.com/software/php_calendar”rel=“noreferer” http://keithdevens.com/software/php_calendar 。
<?php
//http://keithdevens.com/software/php_calendar
$time = time();
$today = date( j , $time);
$days = array($today => array(null, null, <div id="today"> . $today . </div> ));
$pn = array( « => date( n , $time) - 1, » => date( n , $time) + 1);
echo generate_calendar(date( Y , $time), date( n , $time), $days, 1, null, 0);
// PHP Calendar (version 2 . 3), written by Keith Devens
// http://keithdevens . com/software/php_calendar
// see example at http://keithdevens . com/weblog
// License: http://keithdevens . com/software/license
function generate_calendar($year, $month, $days = array(), $day_name_length = 3, $month_href = NULL, $first_day = 0, $pn = array())
{
$first_of_month = gmmktime(0, 0, 0, $month, 1, $year);
// remember that mktime will automatically correct if invalid dates are entered
// for instance, mktime(0,0,0,12,32,1997) will be the date for Jan 1, 1998
// this provides a built in "rounding" feature to generate_calendar()
$day_names = array(); //generate all the day names according to the current locale
for ($n = 0, $t = (3 + $first_day) * 86400; $n < 7; $n++, $t+=86400) //January 4, 1970 was a Sunday
$day_names[$n] = ucfirst(gmstrftime( %A , $t)); //%A means full textual day name
list($month, $year, $month_name, $weekday) = explode( , , gmstrftime( %m, %Y, %B, %w , $first_of_month));
$weekday = ($weekday + 7 - $first_day) % 7; //adjust for $first_day
$title = htmlentities(ucfirst($month_name)) . $year; //note that some locales don t capitalize month and day names
//Begin calendar . Uses a real <caption> . See http://diveintomark . org/archives/2002/07/03
@list($p, $pl) = each($pn); @list($n, $nl) = each($pn); //previous and next links, if applicable
if($p) $p = <span class="calendar-prev"> . ($pl ? <a href=" . htmlspecialchars($pl) . "> . $p . </a> : $p) . </span> ;
if($n) $n = <span class="calendar-next"> . ($nl ? <a href=" . htmlspecialchars($nl) . "> . $n . </a> : $n) . </span> ;
$calendar = "<div class="mini_calendar">
<table>" . "
" .
<caption class="calendar-month"> . $p . ($month_href ? <a href=" . htmlspecialchars($month_href) . "> . $title . </a> : $title) . $n . "</caption>
<tr>";
if($day_name_length)
{ //if the day names should be shown ($day_name_length > 0)
//if day_name_length is >3, the full name of the day will be printed
foreach($day_names as $d)
$calendar .= <th abbr=" . htmlentities($d) . "> . htmlentities($day_name_length < 4 ? substr($d,0,$day_name_length) : $d) . </th> ;
$calendar .= "</tr>
<tr>";
}
if($weekday > 0)
{
for ($i = 0; $i < $weekday; $i++)
{
$calendar .= <td> </td> ; //initial empty days
}
}
for($day = 1, $days_in_month = gmdate( t ,$first_of_month); $day <= $days_in_month; $day++, $weekday++)
{
if($weekday == 7)
{
$weekday = 0; //start a new week
$calendar .= "</tr>
<tr>";
}
if(isset($days[$day]) and is_array($days[$day]))
{
@list($link, $classes, $content) = $days[$day];
if(is_null($content)) $content = $day;
$calendar .= <td . ($classes ? class=" . htmlspecialchars($classes) . "> : > ) .
($link ? <a href=" . htmlspecialchars($link) . "> . $content . </a> : $content) . </td> ;
}
else $calendar .= "<td>$day</td>";
}
if($weekday != 7) $calendar .= <td id="emptydays" colspan=" . (7-$weekday) . "> </td> ; //remaining "empty" days
return $calendar . "</tr>
</table>
</div>
";
}
?>
它是一个基本微型日历。 无租赁职能。
我只用PHP5 + ajax(如果需要的话)写了:
<?php
class PN_Calendar {
public $first_day_of_week = 0; //0 - sunday, 1 - monday
public $current_year = null;
public $current_month = null;
public $current_day = null;
public $show_year_selector = true;
public $min_select_year = 1991;
public $max_select_year = 2045;
public $show_month_selector = true;
public function __construct($atts = array()) {
if (isset($atts[ first_day_of_week ])) {
$this->first_day_of_week = $atts[ first_day_of_week ];
}
if (!isset($atts[ year ])) {
$this->current_year = date( Y );
} else {
$this->current_year = $atts[ year ];
}
if (!isset($atts[ month ])) {
$this->current_month = date( m );
} else {
$this->current_month = $atts[ month ];
}
if (!isset($atts[ day ])) {
$this->current_day = date( d );
} else {
$this->current_day = $atts[ day ];
}
//***
if (isset($atts[ show_year_selector ])) {
$this->show_year_selector = $atts[ show_year_selector ];
}
if (isset($atts[ show_month_selector ])) {
$this->show_month_selector = $atts[ show_month_selector ];
}
if (isset($atts[ min_select_year ])) {
$this->min_select_year = $atts[ min_select_year ];
}
if (isset($atts[ max_select_year ])) {
$this->max_select_year = $atts[ max_select_year ];
}
}
/*
* Month calendar drawing
*/
public function draw($data = array(), $y = 0, $m = 0) {
//***
if ($m == 0 AND $m == 0) {
$y = $this->current_year;
$m = $this->current_month;
}
//***
$data[ week_days_names ] = $this->get_week_days_names(true);
$data[ cells ] = $this->generate_calendar_cells($y, $m);
$data[ month_name ] = $this->get_month_name($m);
$data[ year ] = $y;
$data[ month ] = $m;
return $this->draw_html( calendar , $data);
}
private function generate_calendar_cells($y, $m) {
$y = intval($y);
$m = intval($m);
//***
$first_week_day_in_month = date( w , mktime(0, 0, 0, $m, 1, $y)); //from 0 (sunday) to 6 (saturday)
$days_count = $this->get_days_count_in_month($y, $m);
$cells = array();
//***
if ($this->first_day_of_week == $first_week_day_in_month) {
for ($d = 1; $d <= $days_count; $d++) {
$cells[] = new PN_CalendarCell($y, $m, $d);
}
//***
$cal_cells_left = 5 * 7 - $days_count;
$next_month_data = $this->get_next_month($y, $m);
for ($d = 1; $d <= $cal_cells_left; $d++) {
$cells[] = new PN_CalendarCell($next_month_data[ y ], $next_month_data[ m ], $d, false);
}
} else {
//***
if ($this->first_day_of_week == 0) {
$cal_cells_prev = 6 - (7 - $first_week_day_in_month); //checked, is right
} else {
if ($first_week_day_in_month == 1) {
$cal_cells_prev = 0;
} else {
if ($first_week_day_in_month == 0) {
$cal_cells_prev = 6 - 1;
} else {
$cal_cells_prev = 6 - (7 - $first_week_day_in_month) - 1;
}
}
}
//***
$prev_month_data = $this->get_prev_month($y, $m);
$prev_month_days_count = $this->get_days_count_in_month($prev_month_data[ y ], $prev_month_data[ m ]);
for ($d = $prev_month_days_count - $cal_cells_prev; $d <= $prev_month_days_count; $d++) {
$cells[] = new PN_CalendarCell($prev_month_data[ y ], $prev_month_data[ m ], $d, false);
}
//***
for ($d = 1; $d <= $days_count; $d++) {
$cells[] = new PN_CalendarCell($y, $m, $d);
}
//***
//35(7*5) or 42(7*6) cells
$busy_cells = $cal_cells_prev + $days_count;
$cal_cells_left = 0;
if ($busy_cells < 35) {
$cal_cells_left = 35 - $busy_cells - 1;
} else {
$cal_cells_left = 42 - $busy_cells - 1;
}
//***
if ($cal_cells_left > 0) {
$next_month_data = $this->get_next_month($y, $m);
for ($d = 1; $d <= $cal_cells_left; $d++) {
$cells[] = new PN_CalendarCell($next_month_data[ y ], $next_month_data[ m ], $d, false);
}
}
}
//***
return $cells;
}
public function get_next_month($y, $m) {
$y = intval($y);
$m = intval($m);
//***
$m++;
if ($m % 13 == 0 OR $m > 12) {
$y++;
$m = 1;
}
return array( y => $y, m => $m);
}
public function get_prev_month($y, $m) {
$y = intval($y);
$m = intval($m);
//***
$m--;
if ($m <= 0) {
$y--;
$m = 12;
}
return array( y => $y, m => $m);
}
public function get_days_count_in_month($year, $month) {
return $month == 2 ? ($year % 4 ? 28 : ($year % 100 ? 29 : ($year % 400 ? 28 : 29))) : (($month - 1) % 7 % 2 ? 30 : 31);
}
public static function get_month_name($m) {
$names = self::get_monthes_names();
return $names[intval($m)];
}
public function get_week_day_name($num, $shortly = false) {
$names = $this->get_week_days_names($shortly);
return $names[intval($num)];
}
public function get_week_days_names($shortly = false) {
if ($this->first_day_of_week == 1) {
if ($shortly) {
return array(
1 => Mo ,
2 => Tu ,
3 => We ,
4 => Th ,
5 => Fr ,
6 => Sa ,
7 => Su
);
}
return array(
1 => Monday ,
2 => Tuesday ,
3 => Wednesday ,
4 => Thursday ,
5 => Friday ,
6 => Saturday ,
7 => Sunday
);
} else {
if ($shortly) {
return array(
0 => Su ,
1 => Mo ,
2 => Tu ,
3 => We ,
4 => Th ,
5 => Fr ,
6 => Sa
);
}
return array(
0 => Sunday ,
1 => Monday ,
2 => Tuesday ,
3 => Wednesday ,
4 => Thursday ,
5 => Friday ,
6 => Saturday
);
}
}
public static function get_monthes_names() {
return array(
1 => January ,
2 => February ,
3 => March ,
4 => April ,
5 => May ,
6 => June ,
7 => July ,
8 => August ,
9 => September ,
10 => October ,
11 => November ,
12 => December
);
}
public function draw_html($view, $data = array()) {
@extract($data);
ob_start();
include( views/ . $view . .php );
return ob_get_clean();
}
}
class PN_CalendarCell {
public $cell_year = null;
public $cell_month = null;
public $cell_day = null;
public $in_current_month = true;
public function __construct($y, $m, $d, $in_current_month = true) {
$this->cell_year = $y;
$this->cell_month = $m;
$this->cell_day = $d;
$this->in_current_month = $in_current_month;
}
public function get_week_day_num() {
return date( w , mktime(0, 0, 0, $this->cell_month, $this->cell_day, $this->cell_year)); //from 0 (sunday) to 6 (saturday);
}
public function draw($events) {
$this_day_events = 0;
if (is_array($events)) {
if (isset($events[$this->cell_year][$this->cell_month][$this->cell_day])) {
$this_day_events = count($events[$this->cell_year][$this->cell_month][$this->cell_day]);
}
} else {
$events = array();
}
?>
<span class="pn_cal_cell_ev_counter" <?php if ($this_day_events <= 0): ?>style="display: none;"<?php endif; ?>><?php echo $this_day_events ?></span>
<a data-year="<?php echo $this->cell_year ?>" data-month="<?php echo $this->cell_month ?>" data-day="<?php echo $this->cell_day ?>" data-week-day-num="<?php echo $this->get_week_day_num() ?>" href="javascript:void(0);" class="<?php if ($this->in_current_month): ?>pn_this_month<?php else: ?>other_month<?php endif; ?>"><?php echo $this->cell_day ?></a>
}
}
原文:
<?php
include_once classes/calendar.php ;
$calendar = new PN_Calendar();
echo $calendar->draw();
?>
Download script with demo: http://pluginus.net/archives/simple-free-open-source-ajax-php-calendar-script
我也在寻求一个简单的解决方案,一个PHP级使我成为每月日历,我可以很容易地增加事件。
I ve found this PHP Calendar http://coreyworrell.com/calendar/
您仍须在html上形成一种观点/榜样,但你可以找到一种可以使用的CSS和超文本。
它还在公共卫生和公共卫生部有习俗。
$event = $calendar->event()
->condition( timestamp , strtotime( January 2, 2010 ))
->title( Hello All )
->output( My Custom Event )
->add_class( custom-event-class );
I am trying to create a search text-field like on the Apple website. The HTML looks like this: <div class="frm-search"> <div> <input class="btn" type="image" src="http://www....
I have a div <div id="masterdiv"> which has several child <div>s. Example: <div id="masterdiv"> <div id="childdiv1" /> <div id="childdiv2" /> <div id="...
I m writing a php script to crop an image. The script overwrites the old image with the new one, but when I reload the page (which is supposed to pickup the new image) I still see the old one. ...
<form><input type="file" name="first" onchange="jsFunction(2);"> <input type="file" name="second" onchange="jsFunction(3);"</form> Possible to pass just numbers to the js ...
So I ve got a menu with a hover/selected state and it loads fine in IE6/IE7. However when I scroll down the page and put the element outside of the viewport and then back in I get a broken image! I ...
I am building some basic HTML code for a CMS. One of the page-related options in the CMS is "background image" and "stretch page width / height to background image width / height." so that with large ...
Is it possible to reload a form after file-input change? I have a form where the user can chose an image for upload. I also have a php script which displays that image resized. I only wonder if it ...
I d like to add a simple separator line in an aspx web form. Does anyone know how? It sounds easy enough, but still I can t manage to find how to do it.. 10x!