0){ //compare which one is more $year_allow2 = date('Y', $time_allow2); if($year_allow2 >= $year_end){ //use time_allow2 $m = ($time_allow2 > time()) ? date('m') : date('m', $time_allow2); }else{ //use year_end $m = ($year_end > date('Y')) ? date('m') : 12; } }elseif($ta2_set){ $m = ($time_allow2 > time()) ? date('m') : date('m', $time_allow2); }elseif($year_end > 0){ $m = ($year_end > date('Y')) ? date('m') : 12; }else $m = date('m'); } } if($m < 1 && $m > 12) $m = date('m'); $cyr = ($sly) ? true : false; if($sly && $sly < $year_start) $sly = $year_start; if($sly && $sly > $year_end) $sly = $year_end; if(isset($_REQUEST["y"])) $y = $_REQUEST["y"]; else $y = ($cyr) ? $sly : date('Y'); if($y <= 0) $y = date('Y'); //set startup calendar if($y >= $year_end) $y = $year_end; if($y <= $year_start) $y = $year_start; // ensure m-y fits date allow range if (!$show_not_allow) { if ($ta1_set) { $m1 = date('m', $time_allow1); $y1 = date('Y', $time_allow1); if ($y == $y1 && (int)$m < (int)$m1) $m = $m1; } if ($ta2_set) { $m2 = date('m', $time_allow2); $y2 = date('Y', $time_allow2); if ($y == $y2 && (int)$m > (int)$m2) $m = $m2; } } $objname = (isset($_REQUEST["objname"])) ? $_REQUEST["objname"] : ""; $dp = (isset($_REQUEST["dp"])) ? $_REQUEST["dp"] : ""; $cobj = new tc_calendar(""); $cobj->startDate($startDate); $cobj->dsb_days = explode(",", $dsb_txt); if(!$year_start || !$year_end){ $year_start = $cobj->year_start; //get default value of year start $year_end = $cobj->year_end; //get default value of year end } //$cobj->setDate($sld, $slm, $sly); $total_thismonth = $cobj->total_days($m, $y); if($m == 1){ $previous_month = 12; $previous_year = $y-1; }else{ $previous_month = $m-1; $previous_year = $y; } if($m == 12){ $next_month = 1; $next_year = $y+1; }else{ $next_month = $m+1; $next_year = $y; } $total_lastmonth = $cobj->total_days($previous_month, $previous_year); $today = date('Y-m-d'); $firstdate = date('w', strtotime($y."-".$m."-1")); //first date of month, 0 (for Sunday) through 6 (for Saturday) if($firstdate == $startDate){ //skip last month $startwrite = $total_lastmonth+1; }elseif($firstdate < $startDate){ $startwrite = $total_lastmonth - (6-($startDate-$firstdate)); }else{ $startwrite = $total_lastmonth - ($firstdate - $startDate - 1); } //-------------------------------- //prepare the calendar in array //-------------------------------- $calendar_rows = array(); $week_rows = array(); //collection for week number, $week_rows[$row][$week_number] = counter $dayinweek_counter = 0; $row_count = 0; //write previous month for($day=$startwrite; $day<=$total_lastmonth; $day++){ $calendar_rows[$row_count][] = array($day, "", "othermonth", ""); $dayinweek_counter++; $wknum = date('W', mktime(0,0,0, $m-1, $day, $y)); if(!isset($week_rows[$row_count][$wknum])){ $week_rows[$row_count][$wknum] = 1; }else $week_rows[$row_count][$wknum] = $week_rows[$row_count][$wknum]+1; } $pvMonthTime = strtotime($previous_year."-".$previous_month."-".$total_lastmonth); //check lastmonth is on allowed date if($ta1_set && !$show_not_allow){ if($pvMonthTime >= $time_allow1){ $show_previous = true; }else $show_previous = false; }else $show_previous = true; //always show when not set $date_num = date('w', $pvMonthTime); if(($startDate == 0 && $date_num == 6) || ($startDate > 0 && $date_num == $startDate-1) && $startwrite<$total_lastmonth){ if(isset($calendar_rows[0])) $row_count++; } $dp_time = ($date_pair_value) ? strtotime($date_pair_value) : 0; $select_days = array(); if($sld>0 && $slm>0 && $sly>0){ $sldate = "$sly-$slm-$sld"; for($i=0; $i<$interval; $i++){ $this_day = date("Y-m-d", mktime(0,0,0, date('m', strtotime($sldate)), date('d', strtotime($sldate))+$i, date('Y', strtotime($sldate)))); $select_days[] = strtotime($this_day); } } //write current month for($day=1; $day<=$total_thismonth; $day++){ $date_num = date('w', strtotime($y."-".$m."-".$day)); $day_txt = date('D', strtotime($y."-".$m."-".$day)); $currentTime = strtotime($y."-".$m."-".$day); $htmlClass = array(); $is_today = $currentTime - strtotime($today); $htmlClass[] = ($is_today == 0) ? "today" : "general"; /* $is_selected = strtotime($y."-".$m."-".$day) - strtotime($sly."-".$slm."-".$sld); if($is_selected == 0) $htmlClass[] = "select"; */ if(in_array($currentTime, $select_days)){ $htmlClass[] = "select"; } //check date allowed if($ta1_set && $ta2_set){ //both date specified $dateLink = ($time_allow1 <= $currentTime && $currentTime <= $time_allow2); }elseif($ta1_set){ //only date 1 specified $dateLink = ($currentTime >= $time_allow1); }elseif($ta2_set){ //only date 2 specified $dateLink = ($currentTime <= $time_allow2); }else{ //no date allow specified, assume show all $dateLink = true; } if($dateLink){ //check for disable days if(in_array(strtolower($day_txt), $cobj->dsb_days) !== false){ $dateLink = false; } } //check specific date if($dateLink){ if(is_array($sp_dates) && sizeof($sp_dates) > 0){ //check if it is current date $sp_found = false; //check on yearly recursive if(isset($sp_dates[2]) && is_array($sp_dates[2])){ foreach($sp_dates[2] as $sp_time){ $sp_time_md = date('md', $sp_time); $this_md = date('md', $currentTime); if($sp_time_md == $this_md){ $sp_found = true; break; } } } //check on monthly recursive if(isset($sp_dates[1]) && is_array($sp_dates[1]) && !$sp_found){ foreach($sp_dates[1] as $sp_time){ $sp_time_d = date('d', $sp_time); if($sp_time_d == $day){ $sp_found = true; break; } } } //check on no recursive if(isset($sp_dates[0]) && is_array($sp_dates[0]) && !$sp_found){ $sp_found = in_array($currentTime, $sp_dates[0]); } switch($sp_type){ case 0: default: //disabled specific and enabled others $dateLink = ($sp_found) ? false : true; break; case 1: //enabled specific and disabled others $dateLink = ($sp_found) ? true : false; break; } } } //check date_pair1 & 2 and disabled date if($date_pair1 && $dp_time > 0 && $currentTime < $dp_time){ //set date only after date_pair1 $dateLink = false; } if($date_pair2 && $dp_time > 0 && $currentTime > $dp_time){ //set date only before date_pair2 $dateLink = false; } $htmlClass[] = strtolower($day_txt); if($dateLink){ //date with link $class = implode(" ", $htmlClass); $calendar_rows[$row_count][] = array($day, "javascript:selectDay('".str_pad($day, 2, "0", STR_PAD_LEFT)."');", $class, "$y".str_pad($m, 2, "0", STR_PAD_LEFT).str_pad($day, 2, "0", STR_PAD_LEFT)); }else{ $htmlClass[] = "disabledate"; $class = implode(" ", $htmlClass); //date without link $calendar_rows[$row_count][] = array($day, "", $class, "$y".str_pad($m, 2, "0", STR_PAD_LEFT).str_pad($day, 2, "0", STR_PAD_LEFT)); } if(($startDate == 0 && $date_num == 6) || ($startDate > 0 && $date_num == $startDate-1)){ $row_count++; $dayinweek_counter = 0; }else $dayinweek_counter++; $wknum = date('W', mktime(0,0,0, $m, $day, $y)); if(!isset($week_rows[$row_count][$wknum])){ $week_rows[$row_count][$wknum] = 1; }else $week_rows[$row_count][$wknum] = $week_rows[$row_count][$wknum]+1; } //write next other month $write_end_days = (6-$dayinweek_counter)+1; if($write_end_days > 0){ for($day=1; $day<=$write_end_days; $day++){ $calendar_rows[$row_count][] = array($day, "", "othermonth", ""); $wknum = date('W', mktime(0,0,0, $m+1, $day, $y)); if(!isset($week_rows[$row_count][$wknum])){ $week_rows[$row_count][$wknum] = 1; }else $week_rows[$row_count][$wknum] = $week_rows[$row_count][$wknum]+1; } $row_count++; } //write fulfil row to 6 rows for($day=$row_count; $day<6; $day++){ $tmpday = $write_end_days+1; for($f=$tmpday; $f<=($tmpday+6); $f++){ $calendar_rows[$row_count][] = array($f, "", "othermonth", ""); $wknum = date('W', mktime(0,0,0, $m+1, $f, $y)); if(!isset($week_rows[$row_count][$wknum])){ $week_rows[$row_count][$wknum] = 1; }else $week_rows[$row_count][$wknum] = $week_rows[$row_count][$wknum]+1; } $write_end_days += 6; } //check next month is on allowed date if($ta2_set && !$show_not_allow){ $nxMonthTime = strtotime($next_year."-".$next_month."-1"); if($nxMonthTime <= $time_allow2){ $show_next = true; }else $show_next = false; }else $show_next = true; //always show when not set if($cobj->hl){ $to_replace = array("d","%"," ",".",",","ב","年","日"); $order = str_replace($to_replace,"",L_CAL_FORMAT); if(strpos($order,"B") == 0) $first_input = "B"; elseif(strpos($order,"Y") == 0) $first_input = "Y"; if(strpos($order,"B") == 1) $second_input = "B"; elseif(strpos($order,"Y") == 1) $second_input = "Y"; } ?> > TriConsole.com - PHP Calendar Date Picker
" class="closeme">
getMonthNames(); if ($first_input == "B"){ ?>
getDayHeaders()); echo(""); if ($show_weeks) echo(""); //write calendar day header foreach($day_headers as $dh){ echo(""); } echo(""); for($row=0; $row"); if ($show_weeks){ asort($week_rows[$row]); //get week number with highest member $cw_keys = array_keys($week_rows[$row]); echo(""); } foreach($calendar_rows[$row] as $column){ $this_day = isset($column[0]) ? $column[0] : ""; $this_link = isset($column[1]) ? $column[1] : ""; $this_class = isset($column[2]) ? $column[2] : ""; $this_id = isset($column[3]) ? $column[3] : ""; $id_str = ($this_id) ? " id=\"$this_id\"" : ""; if($this_link){ echo("
$this_day
"); }else{ echo("
$this_day
"); } } echo("
"); } ?>
".$cobj->week_hdr."
".$dh."
".$cw_keys[(sizeof($cw_keys)-1)]."
= $year_start || $next_year <= $year_end) && ($show_previous || $show_next)){ ?>