您好,欢迎访问一九零五行业门户网

PHP strtotime计算上一个月的今天问题解决_PHP教程

今天小编来给大家介绍一个关于php strtotime计算上一个月的今天问题解决,如果你碰到计算上一个月今天有问题不防进入参考。
php,上一个月
strtotime 有个小问题
 代码如下 复制代码
> php -r”echo date(‘ymd000000′,strtotime ( ‘-1 month’, strtotime ( ’201307310000′ ) ));”
20130701000000#
> php -r”echo date(‘ymd000000′,strtotime ( ‘-1 month’, strtotime ( ’201308010000′ ) ));”
20130701000000#
搜了一下,下面的方法更准确一些
 代码如下 复制代码
$time = strtotime(2011-03-31);
函数 mktime,它可以取得日期的时间戳:
int mktime ([ int $hour [, int $minute [, int $second [, int $month [, int $day [, int $year [, int $is_dst ]]]]]]] )
根据给出的参数返回 unix 时间戳。时间戳是一个长整数,包含了从 unix 纪元(january 1 1970 00:00:00 gmt)到给定时间的秒数。
参数可以从右向左省略,任何省略的参数会被设置成本地日期和时间的当前值。
所以可以通过它来计算
 代码如下 复制代码
function last_month_day($time){
    $strtime=mktime(date('h',$time),date('i',$time),date('s',$time),date('m',$time)-1,date('d',$time),date('y',$time));
    echo date('y-m-d',$strtime);
}
 last_month_day(strtotime(2012-03-31));
输出的结果是2012-03-02;按理说应该是输出2012-02-31笨蛋2月有31号吗?没,有30号吗,没?有29号吗?..这个..可以有…
php给我们处理了这种情况,他会多出几天按下个月来算.
2012年2月最后一天是2012-02-29那么31号比29多两天,所以php就累加到下个月来处理 就是2012-03-02啦.
差点忘了..那么星期几怎么算呢不用算啦..php给我们准备好了.
date(‘w’,$strtime);输出的就是一周中的第几天.就是星期几了.

 代码如下 复制代码
/**
 * 计算上一个月的今天,如果上个月没有今天,则返回上一个月的最后一天
 * @param type $time
 * @return type
 */
function last_month_today($time){
    $last_month_time = mktime(date(g, $time), date(i, $time),
                date(s, $time), date(n, $time), 0, date(y, $time));
    $last_month_t =  date(t, $last_month_time);
    if ($last_month_t         return date(y-m-t h:i:s, $last_month_time);
    }
    return date(date(y-m, $last_month_time) . -d, $time);
}
echo last_month_today($time);
http://www.bkjia.com/phpjc/633186.htmlwww.bkjia.comtruehttp://www.bkjia.com/phpjc/633186.htmltecharticle今天小编来给大家介绍一个关于php strtotime计算上一个月的今天问题解决,如果你碰到计算上一个月今天有问题不防进入参考。 php,上一个月...
其它类似信息

推荐信息