PHP基础之日期函数

<?php
//日期函数简单练习

//1,年-月-日
//date() 函数的第一个参数规定了如何格式化日期/时间。它使用字母来表示日期和时间的格式。
//这里列出了一些可用的字母:
//•d - 月中的天 (01-31)  ,小写j表示无前导的日期,如06变成6
//•m - 当前月,以数字计 (01-12),小写n表示不带前导的月份数字,例如06变成6; 大写M表示月份的3个缩写字符,例如2月变成Feb
//•Y - 当前的年(四位数),小写y表示年的两位数字
//可以在字母之间插入其他字符,比如 "/"、"." 或者 "-",这样就可以增加附加格式了
echo date('Y-m-d')."<br/>";//2014-04-14
echo date('Y/m/d')."<br/>";//2014/04/14
echo date('Y.m.d')."<br/>";//2014.04.14


//2,时-分-秒
//小写g表示12小时制,无前导0,而小写h则表示有前导0的12小时制。
//大写G表示24小时制的小时数,但是不带前导的;使用大写的H表示带前导的24小时制小时数
echo date('g:i:s a')."<br/>";//9:24:00 am
echo date('h:i:s A')."<br/>";//09:26:19 AM
echo date('G:i:s A')."<br/>";//9:26:57 AM
echo date('H:i:s A')."<br/>";//09:27:24 AM



//闰年、星期、天
//大写L表示判断今年是否闰年,布尔值,为真返回1,否则为0;
//小写l表示当天是星期几的英文全写(Tuesday);
//而使用大写D表示星期几的3个字符缩写(Tue)。
echo date('L')."<br/>";//0
echo date('l')."<br/>";//Monday
echo date('D')."<br/>";//Mon
//小写w表示星期几,数字形式表示
//大写W表示在一年中的星期数
echo date('w')."<br/>";//1
echo date('W')."<br/>";
//小写t表示当前月份又多少天
//小写z表示今天是本年中第几天
echo date('t')."<br/>";//30
echo date('z')."<br/>";//103


//大写U表示从1970年1月1日到现在的总秒数,就是Unix时间纪元的UNIX时间戳。
echo date('U')."<br/>";//1397439293


//mktime() 函数可为指定的日期返回 Unix 时间戳。mktime(hour,minute,second,month,day,year,is_dst)
//使用 mktime() 函数为明天创建一个时间戳。
$tomorrow=mktime(0,0,0,date('m'),date('d')+1,date('Y'));
echo "明天是:".date("Y-m-d",$tomorrow)."<br/>";//明天是:2014-04-15


//使用checkdate($month,$date,$year)函数来检验日期是否有效
echo checkdate(2,30,2014)?"ture":"false";//false
echo "<br/>";

//getdate()函数以结合数组的方式返回当前日期与时间。数组中的每个元素代表日期/时间值中的一个特定组成部分。
$arr=getdate();
print_r($arr);//Array ( [seconds] => 40 [minutes] => 43 [hours] => 9 [mday] => 14 [wday] => 1 [mon] => 4 [year] => 2014 [yday] => 103 [weekday] => Monday [month] => April [0] => 1397439820 )
echo "<br/>";

//microtime()
$start=microtime();
for($i=0;$i<1000;$i++){
	$j=$i*$i;
}
$end=microtime();
echo "运行了".($end-$start)."sec";//运行了0.025002sec
echo "<br/>";

//time()是获得当前时间,但获得的是一整型,可以对此进行格式化
echo time()."<br/>";//1397440401
echo "time()显示年月日时分秒:" . date("Y-m-d H:i:s", time()). "<br/>";//time()显示年月日时分秒:2014-04-14 09:54:53



//strtotime()获取指定日期的unix时间戳
//打印明天此时的时间戳
echo date('Y-m-d H:i:s',strtotime("+1 day"))."<br/>";
//打印下个星期此时的时间戳
echo date('Y-m-d H:i:s',strtotime("+1 week"))."<br/>";
//打印指定下个星期几的时间戳
echo date('Y-m-d H:i:s',strtotime("next Monday"))."<br/>";



function check_date($date) { //检查日期是否合法日期 
    $dateArr = explode("-", $date); 
    if (is_numeric($dateArr[0]) && is_numeric($dateArr[1]) && is_numeric($dateArr[2])) { 
        return checkdate($dateArr[1],$dateArr[2],$dateArr[0]); 
    } 
    return false; 
} 


function check_time($time) {  //检查时间是否合法时间 
    $timeArr = explode(":", $time); 
    if (is_numeric($timeArr[0]) && is_numeric($timeArr[1]) && is_numeric($timeArr[2])) { 
        if (($timeArr[0] >= 0 && $timeArr[0] <= 23) && ($timeArr[1] >= 0 && $timeArr[1] <= 59) && ($timeArr[2] >= 0 && $timeArr[2] <= 59)) 
            return true; 
        else 
            return false; 
    } 
    return false; 
} 

function DateDiff($date1, $date2, $unit = "") { //时间比较函数,返回两个日期相差几秒、几分钟、几小时或几天 
    switch ($unit) { 
        case 's': 
            $dividend = 1; 
            break; 
        case 'i': 
            $dividend = 60; 
            break; 
        case 'h': 
            $dividend = 3600; 
            break; 
        case 'd': 
            $dividend = 86400; 
            break; 
        default: 
            $dividend = 86400; 
    } 
    $time1 = strtotime($date1); 
    $time2 = strtotime($date2); 
    if ($time1 && $time2) 
        return (float)($time1 - $time2) / $dividend; 
    return false; 
} 


?>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值