PHP strtotime计算上一个月的今天问题解决
发布:smiling 来源: PHP粉丝网 添加日期:2013-12-08 18:08:20 浏览: 评论:0
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 < date("j", $time)) {
- 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);
Tags: strtotime 计算 上一个月
- 上一篇:php time()与date()时间与本地电脑有区别
- 下一篇:计算页面执行时间
相关文章
- ·PHP Warning: strtotime()错误解决办法(2013-12-06)
- ·php 简单strtotime()时间操作函数(2014-01-15)
- ·php用strtotime或mktime指定日期数据:本周,上周,本月,上月,本季度(2014-02-18)
- ·php用strtotime加减运算得到指定日期的方法(2014-02-25)
- ·PHP时间戳与日期之间转换(2014-03-10)
- ·php中strtotime给个时间返回该时间所在的星期一(2014-03-12)
- ·PHP中时间戳与日期之间的转换程序(2014-03-14)
- ·php strtotime()计算今天与指定日期之天数(2014-05-23)
- ·PHP时间戳函数 strtotime()使用技巧(2014-09-13)
- ·php strtotime()函数时间日期转换(2014-09-18)
- ·使用strtotime和mktime时参数为0时返回1999-11-30的时间戳问题(2014-09-21)
- ·php strtotime()函数日期转换应用实例(2014-09-21)
- ·php中date和strtotime函数输出指定日期(2014-09-22)
- ·PHP转Unix时间戳strtotime函数源码分析及使用方法(2015-04-15)
- ·PHP学习之校验日期格式合法性?(使用strtotime()和date())(2020-03-31)
- ·PHP下获取上个月、下个月、本月的日期(strtotime,date)(2020-09-07)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)