pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

基于ThinkPHP實現的日歷功能實例詳解

這篇文章主要介紹了基于ThinkPHP實現的日歷功能,結合實例形式詳細分析了基于thinkPHP實現日歷功能的相關界面布局、數據庫操作與日期時間運算相關技巧,需要的朋友可以參考下

本文實例講述了基于ThinkPHP實現的日歷功能。分享給大家供大家參考,具體如下:

開發環境介紹

最新,閑來沒事,便開發了一款簡單的日歷,來統計工作情況。為了開發便捷,使用ThinkPHP架構。界面如下圖

基于ThinkPHP實現的日歷功能實例詳解

備注:每頁包含上一個月,當前月,下一個月的日期,并用不同的顏色區分,如果某天工作了,便圈出來。
主要是以下兩個文件

重要文件描述

功能文件

基于ThinkPHP實現的日歷功能實例詳解

CalenDar.class.php主要負責,獲取日歷詳細信息的,不涉及用戶數據操作。

代碼如下:

<?php
namespace Util;
class CalenDar{
  //上一個月信息
  private $lastYear=null;
  private $lastMonth=null;
  //當前月信息
  private $curYear=null;
  private $curMonth=null;
  private $curWek=null;
  private $curDay=null;
  private $curDaySum=0;
  //下一個月月信息
  private $nextYear=null; //下一個月是哪一年
  private $nextMonth=null;//下一個月
  private $calendar=null;
  public function __construct($dateTime=null){
    if(isset($_get['yeal']) && is_numeric($_get['yeal'])){
      $this->curYear=$_get['yeal'];
    }else{
      $this->curYear=date('Y');
    }
    if(isset($_get['month']) && is_numeric($_get['month'])){
      $this->curMonth=$_get['month'];
    }else{
      $this->curMonth=date('n');
    }
    if(isset($_get['day']) && is_numeric($_get['day'])){
      $this->curDay=$_get['day'];
    }else{
      $this->curDay=date('j');
    }
    $this->init($dateTime);
    $this->createCalendar();
  }
  /**
  *初始化
  */
  public function init($dateTime=null){
    if(!empty($dateTime)){ //當月
      $this->curYear=date('Y',strtotime($dateTime));
      $this->curMonth=date('n',strtotime($dateTime));
      $this->curDay=date('j',strtotime($dateTime));
    }
    $this->curWek=date('w',strtotime($this->curYear.'-'.$this->curMonth.'-1'));
    //上一個月
    $this->lastMonth=$this->curMonth-1; //上一個月
    $this->lastYear=$this->curYear; //上一個月屬于哪一年
    if($this->lastMonth<0){
      $this->lastMonth=12;
      $this->lastYear-=1;
    }
    //下一個月
    $this->nextMonth=$this->curMonth+1;//下一個月
    $this->nextYear=$this->curYear; //下一個月屬于哪一年
    if($this->nextMonth > 12){
      $this->nextMonth=1;
      $this->nextYear+=1;
    }
  }
  public function getCalendar(){
    return $this->calendar;
  }
  /**
  *創建日歷從周日 周一 周二 周三 周四 周五 周六,7*5方格,前面補上月后幾天,后面補下月開始幾天
  **/
  public function createCalendar(){
    //判斷當月共計多少天
    $nextStr=$this->nextYear.'-'.$this->nextMonth.'-1 -1 days';
    $curDaySum=date('j',strtotime($nextStr));
    //判斷上一個月最后一天是多少號
    $lastStr=$this->curYear.'-'.$this->curMonth.'-1 -1 days';
    $lastDaySum=date('j',strtotime($lastStr));
    $prefixLId=$this->lastYear.'-'.$this->lastMonth;
    $prefixCId=$this->curYear.'-'.$this->curMonth;
    $prefixNId=$this->nextYear.'-'.$this->nextMonth;
    if($this->curWek == 0){
      $lastMonthSum=7; //需要添加上個月的$lastMonthSum天
    }else{
      $lastMonthSum=$this->curWek;
    }
    $lastMonthStart=$lastDaySum - $lastMonthSum+1;
    for($i=0,$j=1,$k=1;$i<42;$i++){
      $dateInfo=array();
      if($i<$lastMonthSum){ //上一個月
        $dateInfo['day']=$lastMonthStart + $i;
        $dateInfo['type']=1;
        $id=$prefixLId.'-'.$dateInfo['day'];
        $this->calendar[]=array('id'=>$id,
                    'info'=>$dateInfo);
      }else if($j > $curDaySum){//下一個月
        $id=$prefixNId.'-'.$k;
        $dateInfo['day']=$k;
        $dateInfo['type']=3;
        $this->calendar[]=array('id'=>$id,
                    'info'=>$dateInfo);
        $k++;
      }else{//本月
        $dateInfo['day']=$j;
        $dateInfo['type']=2;
        $this->calendar[]=array('id'=>($prefixCId.'-'.$j),
                    'info'=>$dateInfo);
        $j++;
        $this->curDaySum+=1;
      }
    }
  }
  public function getDayTime(){
    return $this->curYear.'-'.$this->curMonth.'-'.$this->curDay;
  }
  /**
  *獲取當前月屬于哪個月
  **/
  public function getCurMonth(){
    return $this->curYear.'-'.$this->curMonth;
  }
  /**
  *獲取上一個月屬于哪個月
  **/
  public function getLastMonth(){
    return $this->lastYear.'-'.$this->lastMonth;
  }
  /**
  *獲取下一個月屬于哪個月
  **/
  public function getNextMonth(){
    return $this->nextYear.'-'.$this->nextMonth;
  }
  /**
  *判斷當前月有多少天
  **/
  public function getCurDaySum(){
    return $this->curDaySum;
  }
}

【網站聲明】本站除付費源碼經過測試外,其他素材未做測試,不保證完整性,網站上部分源碼僅限學習交流,請勿用于商業用途。如損害你的權益請聯系客服QQ:2655101040 給予處理,謝謝支持。

相關文檔推薦

這篇文章主要介紹了ThinkPHP實現轉換數據庫查詢結果數據到對應類型的方法,涉及thinkPHP模型類操作及針對源碼文件的相關修改方法,需要的朋友可以參考下
這篇文章主要介紹了thinkPHP中鉤子的使用方法,結合實例形式分析了thinkPHP鉤子的創建、添加、使用等相關操作技巧與注意事項,需要的朋友可以參考下
這篇文章主要介紹了thinkphp5.0驗證類的簡單有效的使用方法,一起學習下。
本文主要講了thinkphp5.0版本中自定義驗證規則的使用方法和一些注意事項。
這篇文章主要介紹了thinkPHP基于反射實現鉤子的方法,結合實例形式分析了php基于系統自帶的ReflectionClass、ReflectionMethod 類與函數實現鉤子功能的相關操作技巧,需要的朋友可以參考下
這篇文章主要介紹了thinkPHP通用控制器實現方法,結合實例形式分析了thinkPHP針對數據庫的基本CURD操作方法的封裝實現技巧,需要的朋友可以參考下
主站蜘蛛池模板: 钢绞线万能材料试验机-全自动恒应力两用机-混凝土恒应力压力试验机-北京科达京威科技发展有限公司 | 手持式线材张力计-套帽式风量罩-深圳市欧亚精密仪器有限公司 | 热缩管切管机-超声波切带机-织带切带机-无纺布切布机-深圳市宸兴业科技有限公司 | 轻型地埋电缆故障测试仪,频响法绕组变形测试仪,静荷式卧式拉力试验机-扬州苏电 | 探伤仪,漆膜厚度测试仪,轮胎花纹深度尺厂家-淄博创宇电子 | 硫酸亚铁-聚合硫酸铁-除氟除磷剂-复合碳源-污水处理药剂厂家—长隆科技 | 骨密度仪-骨密度测定仪-超声骨密度仪-骨龄测定仪-天津开发区圣鸿医疗器械有限公司 | 塑料熔指仪-塑料熔融指数仪-熔体流动速率试验机-广东宏拓仪器科技有限公司 | 冲击式破碎机-冲击式制砂机-移动碎石机厂家_青州市富康机械有限公司 | 熔体泵|换网器|熔体齿轮泵|熔体计量泵厂家-郑州巴特熔体泵有限公司 | 欧盟ce检测认证_reach检测报告_第三方检测中心-深圳市威腾检验技术有限公司 | 齿轮减速机电机一体机_齿轮减速箱加电机一体化-德国BOSERL蜗轮蜗杆减速机电机生产厂家 | 四川成人高考_四川成考报名网 | 【MBA备考网】-2024年工商管理硕士MBA院校/报考条件/培训/考试科目/提前面试/考试/学费-MBA备考网 | 防爆暖风机_防爆电暖器_防爆电暖风机_防爆电热油汀_南阳市中通智能科技集团有限公司 | 商秀—企业短视频代运营_抖音企业号托管 | 成都茶楼装修公司 - 会所设计/KTV装修 - 成都朗煜装饰公司 | 汽车润滑油厂家-机油/润滑油代理-高性能机油-领驰慧润滑科技(河北)有限公司 | 退火炉,燃气退火炉,燃气热处理炉生产厂家-丹阳市丰泰工业炉有限公司 | 喷砂机厂家_自动除锈抛丸机价格-成都泰盛吉自动化喷砂设备 | 数控车床-立式加工中心-多功能机床-小型车床-山东临沂金星机床有限公司 | 湖南档案密集架,智能,物证,移动,价格-湖南档案密集架厂家 | 山东聚盛新型材料有限公司-纳米防腐隔热彩铝板和纳米防腐隔热板以及钛锡板、PVDF氟膜板供应商 | 空气净化器租赁,空气净化器出租,全国直租_奥司汀净化器租赁 | 电动车头盔厂家_赠品头盔_安全帽批发_山东摩托车头盔—临沂承福头盔 | 塑料熔指仪-塑料熔融指数仪-熔体流动速率试验机-广东宏拓仪器科技有限公司 | 礼仪庆典公司,礼仪策划公司,庆典公司,演出公司,演艺公司,年会酒会,生日寿宴,动工仪式,开工仪式,奠基典礼,商务会议,竣工落成,乔迁揭牌,签约启动-东莞市开门红文化传媒有限公司 | WTB5光栅尺-JIE WILL磁栅尺-B60数显表-常州中崴机电科技有限公司 | 荣事达手推洗地机_洗地机厂家_驾驶式扫地机_工业清洁设备 | 伺服电机_直流伺服_交流伺服_DD马达_拓达官方网站 | 贵州水玻璃_-贵阳花溪闽兴水玻璃厂 | 尼龙PA610树脂,尼龙PA612树脂,尼龙PA1010树脂,透明尼龙-谷骐科技【官网】 | 气动调节阀,电动调节阀,自力式压力调节阀,切断阀「厂家」-浙江利沃夫自控阀门 | 波纹补偿器_不锈钢波纹补偿器_巩义市润达管道设备制造有限公司 | 真空泵维修保养,普发,阿尔卡特,荏原,卡西亚玛,莱宝,爱德华干式螺杆真空泵维修-东莞比其尔真空机电设备有限公司 | 【星耀裂变】_企微SCRM_任务宝_视频号分销裂变_企业微信裂变增长_私域流量_裂变营销 | 环球周刊网| China plate rolling machine manufacturer,cone rolling machine-Saint Fighter | nalgene洗瓶,nalgene量筒,nalgene窄口瓶,nalgene放水口大瓶,浙江省nalgene代理-杭州雷琪实验器材有限公司 | 柴油发电机组_柴油发电机_发电机组价格-江苏凯晨电力设备有限公司 | 杭州月嫂技术培训服务公司-催乳师培训中心报名费用-产后康复师培训机构-杭州优贝姆健康管理有限公司 |