在生活中很常见劵码使用时间,那么时间是怎么计算的呢?
举个栗子,我开通会员一年,那就算加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时间函数
下一篇: 进制转换...