zoukankan      html  css  js  c++  java
  • PHP完成一个日历

    今天我们就用php中的数组合date 做一个日历。

    先让我们回顾一下PHP里面的date 。

    1、时间戳:表示从计算机元年/UNIX纪年(0时区 1970/1/1 00:00:00)到当前事件的秒数。是一个长整形的数字。
    2、取到时间戳的函数
     ① time():返回当前时间的时间戳;
     ② mktime():根据设置的时间,返回时间戳。
     设置的格式:时,分,秒,月,日,年
     ③ strtotime():将输入的字符串日期转为时间戳;
     eg:echo strtotime("2017-06-02 09:42:00");
     echo strtotime("July 1st, 2008 09:42:00");
     echo strtotime("now");
     echo strtotime("+1 day");
     3、时间戳的格式化:
     ① 使用getdate()函数:(并不常用);
     返回一个数组,数组的键值如下
     'seconds' => int 47 秒
    'minutes' => int 56 分
    'hours' => int 9 小时
    'mday' => int 2 一个月的第几天
    'wday' => int 5 一个周的第几天
    'mon' => int 6 数组的几月
    'year' => int 2017 年份
    'yday' => int 152 一年中的第几天
    'weekday' => string 'Friday' (length=6) 字符串的英文周几
    'month' => string 'June' (length=4) 字符串的英文月份
    0 => int 1496368607 原始的时间戳
     ② 使用date()函数:非常常用
     String date(String "格式化字符串"[,int 时间戳 = time()]);
     格式化的字符串:
     Y:四位数年 m:月01-12 n:月1-12 d:天01-31 j:天1-31
        H:时24时制 h:小时12制 i:分钟00-59 s:秒00-59 w:星期几0-6
        A:上午AM或下午PM a:上午am或下午pm。
     4、时区设置
     ① 修改php.ini配置文件
     date.timezone = Etc/GMT-8
     ② 使用date_default_timezone_set();函数
     date_default_timezone_set("Etc/GMT-8");//直接指定时区,西加东减
     date_default_timezone_set("PRC");//中华人民共和国
     date_default_timezone_set("Asia/Shanghai");//亚洲上海

     取到当前时区设置:date_default_timezone_get();
     5、了解microtime(true);取到从计算机元年到现在的微秒数;
     默认显示为0.78026400 1496372572 单位为秒,前面是小数点后部分,后面为小数

    下面我们就开始写代码喽!

    date_default_timezone_set("PRC");


    //取到 年  月  日
    $time = getdate();
    $mday = $time["mday"];
    $mon = $time["mon"];
    $year = $time["year"];

    //判断一下一年中各个月份有几天的情况
    if($mon==4||$mon==6||$mon==9||$mon==11){
    $day = 30;
    }elseif($mon==2){
    if(($year%4==0&&$year%100!=0)||$year%400==0){
    $day = 29;
    }else{
    $day = 28;
    }
    }else{
    $day = 31;
    }

    //取到这个月的1号是第几天
    $w = getdate(mktime(0,0,0,$mon,1,$year))["wday"];

    //制作日历的大框架。用for遍历数组,打印出一个日历的格式
    $date = function($day,$w){
    echo "<table border='1'>";
    echo "<tr><th>星期日</th><th>星期一</th><th>星期二</th><th>星期三</th><th>星期四</th><th>星期五</th><th>星期六</th></tr>";
    $arr = array();
    for($i=1;$i<=$day;$i++){
    array_push($arr,$i);
    }
    if($w>=1&&$w<=6){
    for($m=1;$m<=$w;$m++){
    array_unshift($arr,"");
    }
    }
    $n=0;
    for($j=1;$j<=count($arr);$j++){
    $n++;
    if($n==1) echo "<tr>";
    global $mday;
    if($mday==$arr[$j-1]){

    //把今天的这一天加一个颜色
    echo "<td width='80px' style='background-color: greenyellow;'>".$arr[$j-1]."</td>";
    }else{
    echo "<td width='80px'>".$arr[$j-1]."</td>";
    }

    if($n==7){
    echo "</tr>";
    $n=0;
    }
    }
    if($n!=7)echo "</tr>";

    echo "</table>";
    };
    $date($day,$w);

    这是效果图。

    这样我们的一个简单的日历就做完了。

  • 相关阅读:
    Ubuntu速配指南之热门设置
    最高境地的Linux桌面
    菜鸟在Linux零碎中安置Oracle 11G
    Ubuntu 7.10疾速设置指南
    excel的单元格怎么实现下拉菜单?
    Delphi 与 DirectX 之 DelphiX(16): DXImageList1.Items.Find();
    Delphi 与 DirectX 之 DelphiX(19): 绘图表面(TDirectDrawSurface)如何加载图片
    Delphi 与 DirectX 之 DelphiX(18): TDXDraw 中描绘图片的命令
    Delphi 与 DirectX 之 DelphiX(17): TPictureCollectionItem.PatternWidth、PatternHeight
    Delphi 与 DirectX 之 DelphiX(23): TDirectDrawSurface.Blur;
  • 原文地址:https://www.cnblogs.com/lixishimeng/p/6934368.html
Copyright © 2011-2022 走看看