| 域名空间 下载中心 社区论坛 信息公告 my小屋 |
![]() |
联系我们 设为首页 加入收藏 |
|
首页 | 新闻资讯 | 编程开发 | 网页设计 | 图形图象 | 网络媒体 | 网站模板 | 数 据 库 | 投稿 论坛 | 操作系统 | 系统优化 | 网络安全 | 黑客技术 | 硬件学堂 | 硬件报价 | 服 务 器 | 地图 专题 | 应用软件 | 聊天通讯 | q q 专栏 | 建站经验 | 在线工具 | 站长club | 注 册 表 | 旧版 社会 | 游戏娱乐 | 设计欣赏 | 疑难解答 | 社区论坛 | 韩国素材 | 素材图库 | 广告服务 | 服务 |
| 新版上线![旧版] | |||||
注:打开慢时请稍等
如何得到2003-7-7日至1800-12-28日的天数http://www.iyit.net 日期:2006-10-6 15:33:19 来源:iyit.net收集 点击: |
没有现成函数吧 --------------------------------------------------------------- (strtotime("2003-07-07")-strtotime("1800-12-28"))/86400 strtotime()函数得到当前日期的时间戳,相减后除以一天的秒数,得到相隔的天数 --------------------------------------------------------------- 有,但无法计算到1800年 php的时间函数现在只能计算1970-01-01 到2038-01-19日之间的时间 以下是计算2038/01/19到1970/01/01之间相差的天数... <?php echo (strtotime("19-01-2038")-strtotime("1970-01-01"))/86400; ?> --------------------------------------------------------------- http://www.phpe.net/faq/65.shtml --------------------------------------------------------------- 可以和数据库结合使用就很简单。 如:mysql 使用 select to_days('2003-07-07')-to_days('1800-12-28') 就可以得出结果。 ms sql 使用 select datediff(d ,'1800-12-28','2003-7-7') --------------------------------------------------------------- <? $time1 = mktime(10,20,30,2,5,2002); //2002-2-5 10:20:30 $time2 = mktime(14,30,20,7,29,2002); //2000-7-29 14:30:20 $diff = (int)(($time2-$time1)/(24*3600)); echo "$time2 和 $time1 的时间差为:" . $diff . "天"; ?> --------------------------------------------------------------- 验算: $d1 = "2003-07-07"; $d2 = "1800-12-28"; if(strtotime($d2) < 0) { $ar = split("[-/.]",$d2); $dd = $ar[0]; $ar[0] = 1970; $d2 = join("-",$ar); } $r = 0; for($i=$dd;$i<1970;$i++) $r+= ($i%4?0:1)-($i%100?0:1)+($i%400?0:1)+365; echo $r + (strtotime($d1)-strtotime($d2))/86400; 结果为:73970 该算法最远可算至1752-9-14 --------------------------------------------------------------- <? //date's format is yyyy-mm-dd function alldays($my_date){ $arr_month_day=array(1=>31,2=>28,3=>31,4=>30,5=>31,6=>30,7=>31,8=>31,9=>30,10=>31,11=>30,12=>31); $adate=explode("-",$my_date); $year=$adate[0]; $month=$adate[1]; $day=$adate[2]; $days=0; for($i=1;$i<$year;$i++){ if(($i%400==0) or ($i%4==0 and $i%100!=0)){ $days+=366; }else{ $days+=365; } // echo $i."year".$days."<br>"; check the year days } for($j=1;$j<$month;$j++){ if($j==2){ if(($j%400==0) or ($j%4==0 and $j%100!=0)){ $arr_month_day[2]+=1; } } $days+=$arr_month_day[$j]; // echo $j."month".$days."<br>"; check the month days } $days+=$day; return $days; } $a="2003-7-7"; $b="1800-12-28"; $dayofdiff=alldays($a)-alldays($b); echo "$a 与 $b 相差:$dayofdiff 天。"; ?> 随便用吧,可以不在受unix时间戳的限制了。 大家可以试一试。 编辑:黑鹰 [发送给好友] [打印本页] [关闭窗口] [返回顶部] 上一篇:怎么在页面之间传递多个变量! 下一篇:如何限制表单输入框输入的字符的长度 转载请注明来源:www.iyit.net 特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。 |
| 相关文章 | ||||
| 友情链接 | ||||||
| 设置首 页 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接 |
| |||||||