php如何计算时间,[PHP]:如何计算时间,神奇的strtotime函数

我现在研发的系统中,有很多报表是需要按月统计的,比如月底销售奖励,比如环比增长,都要用到本月、上月,指定月,指定月的上个月这种概念,为了便于存储、查询、计算、比较的方便,我们采用了整型201203这种格式来保存月份,然后就衍生了一系列时间计算的需求。

假如时间格式是201203这种,如何算出201202?最简单的办法莫过于-1,因为月份是连续的,所以-1和+1就能计算上月和下月,但是你很快会发现,只有2月到11月之间适合这么算,跨年就麻烦了。于是,我就看到了各种时间计算的方法,比如把201203先拆开,变成2012和03,然后对3判定,决定是否进位退位,做得像12进制加减法一样,这是最常见的用法,然后为此封装一个函数。这种算法还有个麻烦,就是做加减法,要转换整数,换完以后,小于10的,要拼回去,就要加前置0。

有人这么写:

php

//注意:这里应该是$month >= 10,不仔细就错了

$yearmonth = $year . $month > 10 ? $month : ‘0’ . $month;

//题外话:对于n位数拼接前缀0的问题,我建议这么做,以下是2位数的例子

$yearmonth = $year . substr(’00’ . $month, -2);

经过反复地实现类似需求,经过不断地总结和尝试,我这里给出一组比较简洁的写法,供诸君参考,如果有更好,更安全的写法,请诸君不吝赐教,谢谢:

= 1338480000 AND TIMESTAMP < 1341072000"

var_dump("TIMESTAMP >= {$start} AND TIMESTAMP < {$end}");

相关阅读

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值