轉自 http://hi.baidu.com/jiangxuzi/blog/item/ba5a48dddfc9791f4854031d.html
--
最近在开发一个管理系统,里面就有一个关于生日提醒的功能,当时是让生日提前3天提醒用户,所以这里就需要判断生日的日期到现在的日期相差几天,看是不是小于3,下面就来说说比较常用的计算日期相差天数的方法。其实计算的方法不止这些,还有好多,我只是觉得下面的是最常用的:
第一种情况是没有数据库,只是得到的日期值进行比较的话,那就得完全用php的时间日期函数计算了,如下:
比如要计算2009-9-5到2009-9-18还有多少天:
<?php
$startdate=strtotime("2009-9-5"); $enddate=strtotime("2009-9-18"); //上面的php时间日期函数已经把日期变成了时间戳,就是变成了秒。这样只要让两数值相减,然后把秒变成天就可以了,比较的简单,如下: $days=round(($enddate-$startdate)/3600/24) ; echo $days; //days为得到的天数;
?>
对于下面的朋友的评论加以修改,上面的是判断两个日期的大小,下面则是判断生日的程序代码,得到的$n就是相距生日的天数。
- $birthday="填写你的生日";
- $birthday = preg_replace('/\d+/', date('Y'), $birthday, 1);
- $d = 60*60*24;
- $n= floor((strtotime($birthday)-time())/$d);
- $n=$n+1;
还有如果相比的是现在的时间,就可以用time()函数,得到的就是现在的时间戳,后面就自己编写吧!
第二种情况呢,就是有数据库,这样就相对比较容易一些了!如果是MSSQL可以使用触发器!用专门计算日期差的函数datediff()计算便可!
如果是MYSQL那就用两个日期字段的时间戳值,进行计算后便可得到相差的天数了。方法和上面的代码很像。
|
http://www.wljcz.com/html/PHPjiaocheng/phpjichu/2009/0909/1343.html
--
留言列表