close

轉自 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就是相距生日的天数。

 

  1. $birthday="填写你的生日";   
  2. $birthday = preg_replace('/\d+/',   date('Y'),   $birthday,    1);   
  3. $d = 60*60*24;   
  4. $n= floor((strtotime($birthday)-time())/$d);  
  5. $n=$n+1;


还有如果相比的是现在的时间,就可以用time()函数,得到的就是现在的时间戳,后面就自己编写吧!


第二种情况呢,就是有数据库,这样就相对比较容易一些了!如果是MSSQL可以使用触发器!用专门计算日期差的函数datediff()计算便可!


如果是MYSQL那就用两个日期字段的时间戳值,进行计算后便可得到相差的天数了。方法和上面的代码很像。

http://www.wljcz.com/html/PHPjiaocheng/phpjichu/2009/0909/1343.html

--

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 dizzy03 的頭像
    dizzy03

    碎碎念

    dizzy03 發表在 痞客邦 留言(0) 人氣()