php有关的几个日期函数

<?php
/*
    转化为时间戳格式
*/
function timestamp($data){
    $number = strlen((int)$data);
    if($number != 10){//时间戳长度为10
        $data = strtotime($data);
    }
    return $data;
}

/*
    转化为日期格式
*/
function dateFormat($data){
    $number = strlen((int)$data);
    if($number == 10){
        $data = date('Y-m-d H:i:s',$data);
    }
    return $data;
}

/*
    计算两个日期之间相差的天数  输入任意两个日期,就能计算出两个日期之间相差的天数
    $data1 = '2016-2-19';
    $data2 = '2016-3-22';
    var_dump(datediff($data1,$data2));//int 32
*/
function datediff($date1, $date2){
    $date1 = timestamp($date1);
    $date2 = timestamp($date2);
    return abs($date2 - $date1)/86400;// int 32
}


$timess = time();
$data1 = '2016-2-19';
$data2 = '2016-3-22';
$res = dateFormat(time());
// var_dump($res);
// var_dump($timess);
// var_dump($data3);
// var_dump(dateadd($data2,$data1));
// var_dump(dateadd(time(),9));

/*
    计算几天之后的日期
    $data = '2016-2-19';
    $days = 6;
    echo '求几天之后的日期';
    var_dump(dateadd($data,$days));//string '2016-02-25' (length=10)
*/

function dateadd($date, $days){
    $date = timestamp($date);
    // return date('Y-m-d',strtotime($date) + $days * 86400);//几天之后的日期
    return date('Y-m-d',$date + $days * 86400);
}

/*
    求昨天11点的日期函数
    var_dump(yesterday());
    //date_default_timezone_set ( 'PRC' );//设置时区
    //string '今天时间:2016-04-10 10:52:59  昨天时间:2016-04-09 10:52:59  昨天11点的日期:2016-04-09 11:00:00' (length=108)
    //不设置时区
    //string '今天时间:2016-04-10 02:50:33  昨天时间:2016-04-09 02:50:33  昨天11点的日期:2016-04-09 11:00:00' (length=108)
*/
    function getyesterday(){
        $day = time();//获取当前时间的时间戳
        $today =  date('Y-m-d H:i:s',$day);//转化为当前日期格式 今天日期
        $yesterday =  date('Y-m-d H:i:s',$day - 86400);//昨天的日期
        $yesterdays =  date('Y-m-d 11:00:00',$day - 86400);//昨天11点的日期
        return '今天时间:'.$today.'  昨天时间:'.$yesterday.'  昨天11点的日期:'.$yesterdays;
    }


/*
    求一个日期是星期几
    $data1 = '2016-2-19';
    var_dump(getweek($data1));
*/
function getweek($date){
    $weekarray=array("日","一","二","三","四","五","六");
    $date = timestamp($date);
    return $weekarray[date('w',$date)];//string '五' (length=3)
    // return date('w',strtotime($date));//string '5' (length=1)
    // return (int)date('w',strtotime($date));//int 5
}

/*
    求一个日期的上个月下个月当天的日期
    $data1 = '2016-1-19';
    var_dump(getNextMonthDays($data1,6));//string '上月当天日期:2015-12-19  下月当天日期:2016-02-19' (length=60)
    var_dump(getNextMonthDays(time(),12));
*/
function getNextMonthDays($data,$num = 1){
    $data = dateFormat($data);
    $lastday=date('Y-m-d',strtotime("$data +$num month"));    //下个月当天日期
    return $lastday;
}

function getLastMonthDays($data,$num = 1){
    $data = dateFormat($data);
    $firstday=date('Y-m-d',strtotime("$data -$num month"));//上个月当天日期
    return $firstday;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值