在生活中很常见劵码使用时间,那么时间是怎么计算的呢?
举个栗子,我开通会员一年,那就算加12个月,365天。这个好计算,那么如果我开通的是2个月,那就需要考虑下面的两个月是不是31天还是30天了。
这是一个比较常见的问题,处理的思路是当我开通的时候,我记录这个年月日的时间戳,然后加上开通的月份后来和当前的时间戳比较。
下面是代码
<?php /** * 点劵计时判断 * @date: 2015年8月26日 * @author: Administrator * @return: */ # mktime ( 时,分,秒,月,日,年); # strtotime()将任何英文文本的日期或时间描述解析为 Unix 时间戳。对字符串不支持 # 基础时间是 2010/10/10 +6个月的时间戳 $oldtime = mktime(0,0,0,16,10,2015); # 打印出来 看是否错误 //echo date('Y-m-d H:i:s',$oldtime).'<br/>'; # 获取现在的时间戳 避免在函数中多次获取 $nowtime = time(); # 转换现在时间为年月日的时间戳 $nowtime = mktime(0,0,0,date('m',$nowtime),date('d',$nowtime),date('Y',$nowtime)); # 比较 if($oldtime > $nowtime){ echo "点劵有效期未到,到期时间为".date('Y-m-d H:i:s',$oldtime).'<br/>'; }else{ echo "点劵已过期。"; } ?>
其中 mktime函数是根据输入的时间留获取时间戳,让它的月份+6后,他会自动转换成 2011/4/10
然后我在获取这个时间的时间戳来和现在的时间戳的年月日比较,判断时候到期。
其中涉及的函数是 time() date() mktime()
关于时间的其他函数见下图。
链接为 : PHP时间函数
下一篇: 进制转换...