快速业务通道

PHP+MYSQL网站开发中关于时间的问题

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-03-15

PHP+MYSQL网站开发中关于时间的问题,看看当遇到时间的问题时,该如何处理呢?

PHP和MYSQL中没有像ASP和MSSQL那样有DateDiff这个函数直接比较,MYSQL5.0已经支持DateDiff了,但是4.x还不支持。。。
下面分别来看PHP和MYSQL查询时如何比较。。。

先看PHP:

$date1 = ''2008-05-30'';
$date2 = ''2008-06-05'';
$from = mktime(0,0,0,date("m",strtotime($date1)),date("d",strtotime($date1)),date("Y",strtotime($date1)));
$to = mktime(0,0,0,date("m",strtotime($date2)),date("d",strtotime($date2)),date("Y",strtotime($date2)));
$datediff = ($to - $from)/86400;
echo $datediff;

返回值:6

MYSQL就简单地写一条SQL语句就清楚了:
select * from tb where (TO_DAYS(expiredDate)-TO_DAYS(NOW()))<=3 。。。
5.0以上的MYSQL就直接DateDiff了。。。

以下是某人总结的:
30天以内:
mysql> SELECT something FROM table WHERE TO_DAYS(NOW()) - TO_DAYS(date_col) <= 30; 

DAYOFWEEK(date) 
返回日期date的星期索引(1=星期天,2=星期一, ……7=星期六)。这些索引值对应于ODBC标准。 
mysql> select DAYOFWEEK(''1998-02-03''); 
-> 3 

WEEKDAY(date) 
返回date的星期索引(0=星期一,1=星期二, ……6= 星期天)。 
mysql> select WEEKDAY(''1997-10-04 22:23:00''); 
-> 5 
mysql> select WEEKDAY(''1997-11-05''); 
-> 2 

DAYOFMONTH(date) 
返回date的月份中日期,在1到31范围内。 
mysql> select DAYOFMONTH(''1998-02-03''); 
-> 3 

DAYOFYEAR(date) 
返回date在一年中的日数, 在1到366范围内。 
mysql> select DAYOFYEAR(''1998-02-03''); 
-> 34 

MONTH(date) 
返回date的月份,范围1到12。 
mysql> select MONTH(''1998-02-03''); 
-> 2 

DAYNAME(date) 
返回date的星期名字。 
mysql> select DAYNAME("1998-02-05"); 
-> ''Thursday'' 

MONTHNAME(date) 
返回date的月份名字。 
mysql> select MONTHNAME("1998-02-05"); 
-> ''February'' 

QUARTER(date) 
返回date一年中的季度,范围1到4。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号