国产精品一区二区三区……-大杳蕉伊人欧美一本遒在饯-日本不卡一区免费在线观看-国产亚洲欧美中文字幕

400-800-9385
網(wǎng)站建設(shè)資訊詳細(xì)

網(wǎng)站制作系列之PHP制作日歷

發(fā)表日期:2019-06-29 09:22:10   作者來源:方維網(wǎng)絡(luò)   瀏覽:5146   標(biāo)簽:    網(wǎng)站制作    
網(wǎng)上有很多漂亮的js日歷插件 拿來做一下日期的選擇方便、漂亮,但是如果要拿來做像訂票、行程表等,這些都需要將我們的數(shù)據(jù)動(dòng)態(tài)的寫入日歷中,這種就需要大量的改動(dòng),所以我們用php加js生成一個(gè)能夠高度定制的日歷 .
生成日歷的代碼

namespace Org\Util;
class Calendar {
    private $year;
    private $month ;
    private $day ;
    private $weeks  = array('日','一','二','三','四','五','六');
     
    function __construct($options = array()) {
        $this->year =$options['year'];
        $this->month = $options['month'];
        $this->day = $options['day'];
         
        $vars = get_class_vars(get_class($this));
        foreach ($options as $key=>$value) {
            if (array_key_exists($key, $vars)) {
                $this->$key = $value;
            }
        }
    }
    function display()
    {
        $list= '
    ';
        $list.= $this->showChangeDate();
        $list.= $this->showWeeks();
        $list.= $this->showDays($this->year,$this->month,$this->day);
      
        return $list;
    }
     
    private function showWeeks()//生成星期
    {
        $list = '   ';
        foreach($this->weeks as $title)
        {
            $list.= '
';
        }
        $list.= '
';
              return $list;
    }
     
    private function showDays($year, $month,$day)
    {//生成日期,具體日歷的樣式可以替換生成
        $firstDay = mktime(0, 0, 0, $month, 1, $year);
        $starDay = date('w', $firstDay);
        $days = date('t', $firstDay);
 
        $list= '
';
        for ($i=0; $i<$starDay; $i++) {
            $list.= '
';
        }
         
        for ($j=1; $j<=$days; $j++) {
            $i++;
$ymd = date('Y-m-d',strtotime($year.'-'.$month.'-'.$j));
            $time=strtotime($year.'-'.$month.'-'.$j);
            if ($j == $day) {       //當(dāng)前日期下
           $list.= '
';            
            } else {         //非當(dāng)前日期下 
$list.= '
';
                           
            }
            if ($i % 7 == 0) {//一個(gè)星期結(jié)束
                $list .='
';
            }
        }
       $list.= '
'.$title.'
'.$j.' '.$j.' '.$j.'
';
return $list;
    }
     
     function showChangeDate()//點(diǎn)擊更換月份{
       $url = basename($_SERVER['PHP_SELF']);

 
         $list='
 
           >
        
';

 
              return $list;

 
    }
    private function preYearUrl($year,$month)
    {
        $year = ($this->year <= 1970) ? 1970 : $year - 1 ;
         
        return 'year='.$year.'&month='.$month;
    }
     
    private function nextYearUrl($year,$month)
    {
        $year = ($year >= 2038)? 2038 : $year + 1;
         
        return 'year='.$year.'&month='.$month;
    }     
    private function preMonthUrl($year,$month)
    {
        if ($month == 1) {
            $month = 12;
            $year = ($year <= 1970) ? 1970 : $year - 1 ;
        } else {
            $month--;
        }        
        
        return  "'".$year."','".$month."'";//'year='.$year.'&month='.$month;
    }
  private function nextMonthUrl($year,$month)
    {
        if ($month == 12) {
            $month = 1;
            $year = ($year >= 2038) ? 2038 : $year + 1;
        }else{
            $month++;
        }
        return "'".$year."','".$month."'";//'year='.$year.'&month='.$month;
    }
}
調(diào)用日歷
  1. 控制器
public function get_date(){
   if(IS_AJAX){
      $result['title']='success';
      $params = array();
      $year = I('get.year',date('Y'));
      $month = I('get.month',date('m'));
      $day = I('get.day',date('d'));
      if ($year&& $month) {
      $params = array(
        'year' => $year,
        'month' => $month,
        'day' => $day,
      );
     }
     $catobj = new \Org\Util\Calendar($params);
    // print_r($price_list);
     $result['content'] = $catobj->display(); 
     $this->ajaxReturn($result);    
    }
    
   }
前端js 生成日歷
chage_month(year,month,day);//當(dāng)前的年月日
function chage_month(year,month,day){
              
$.ajax({ url: "{:urlrotue('Activity/get_date')}?year="+year+"&month="+month+"&day="+day,
            type: "POST",
            cache: false,
            data: {},
            success: function (obj) {
            if (obj.title == 'success') {
                           
              $('#get_date').html(obj.content);
            }
            else {
              layer.msg(obj.msg, {icon: 5}); 
            }
        },
        error: function () {
          layer.msg('獲取日期失??!', {icon: 5}); 
        }
    });
              }
效果:

PHP制作日歷

這個(gè)樣式比較集成,只加了跳轉(zhuǎn)時(shí)間篩選功能,我們可以在日期showDays 里面添加日期的活動(dòng),門票等,看業(yè)務(wù)需求.
如沒特殊注明,文章均為方維網(wǎng)絡(luò)原創(chuàng),轉(zhuǎn)載請注明來自http://pdcharm.com/news/5115.html
相關(guān)網(wǎng)站設(shè)計(jì)案例
屏山县| 蒲江县| 海南省| 福安市| 饶阳县| 日喀则市| 上林县| 梅河口市| 泸西县| 嘉定区| 德安县| 周口市| 通城县| 定结县| 富宁县| 龙胜| 汉中市| 杭锦后旗| 金乡县| 缙云县| 集贤县| 翼城县| 碌曲县| 余干县| 余干县| 博湖县| 瑞昌市| 精河县| 长海县| 当雄县| 广饶县| 南华县| 平罗县| 昆山市| 徐闻县| 疏勒县| 永济市| 霍山县| 肇庆市| 广东省| 罗山县|