十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
首先要考虑给数据库减压,意思就是让数据库做最简单的事情。你可以把条件在php里边组装好,然后让mysql只单一的执行查询就好了,php的时间代码给你贴一下吧
创新互联于2013年创立,先为德兴等服务建站,德兴等地企业,进行企业商务咨询服务。为德兴企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
?php
date_default_timezone_set('Asia/Shanghai');
echo "今天:".date("Y-m-d H:i:s")."br";
echo "昨天:".date("Y-m-d",strtotime("-1 day")), "br";
echo "明天:".date("Y-m-d",strtotime("+1 day")). "br";
echo "一周后:".date("Y-m-d",strtotime("+1 week")). "br";
echo "一周前:".date("Y-m-d",strtotime("-1 week")). "br";
echo "一周零两天四小时两秒后:".date("Y-m-d G:H:s",strtotime("+1 week 2 days 4 hours 2 seconds")). "br";
echo "下个星期四:".date("Y-m-d",strtotime("next Thursday")). "br";
echo "上个周一:".date("Y-m-d",strtotime("last Monday"))."br";
echo "一个月前:".date("Y-m-d",strtotime("last month"))."br";
echo "一个月后:".date("Y-m-d",strtotime("+1 month"))."br";
echo "十年后:".date("Y-m-d",strtotime("+10 year"))."br";
echo 'hr/';
//php获取今日开始时间戳和结束时间戳
$beginToday=mktime(0,0,0,date('m'),date('d'),date('Y'));
$endToday=mktime(0,0,0,date('m'),date('d')+1,date('Y'))-1;
echo "今日开始时间戳和结束时间戳",'开始:',$beginToday,'结束:',$endToday,'br/';
echo "今日开始时间:",date("Y-m-d H:i:s",$beginToday),'br/';
echo "今日结束时间:",date("Y-m-d H:i:s",$endToday),'br/';
echo 'hr/';
//php获取昨日起始时间戳和结束时间戳
$beginYesterday=mktime(0,0,0,date('m'),date('d')-1,date('Y'));
$endYesterday=mktime(0,0,0,date('m'),date('d'),date('Y'))-1;
echo "昨日开始时间戳和结束时间戳",'开始:',$beginYesterday,'结束:',$endYesterday,'br/';
echo "昨日开始时间:",date("Y-m-d H:i:s",$beginYesterday),'br/';
echo "昨日结束时间:",date("Y-m-d H:i:s",$endYesterday),'br/';
echo 'hr/';
//php获取上周起始时间戳和结束时间戳
$beginLastweek=mktime(0,0,0,date('m'),date('d')-date('w')+1-7,date('Y'));
$endLastweek=mktime(23,59,59,date('m'),date('d')-date('w')+7-7,date('Y'));
echo "上周开始时间戳和结束时间戳",'开始:',$beginLastweek,'结束:',$endLastweek,'br/';
echo "上周开始时间:",date("Y-m-d H:i:s",$beginLastweek),'br/';
echo "上周结束时间:",date("Y-m-d H:i:s",$endLastweek),'br/';
echo 'hr/';
//php获取本月起始时间戳和结束时间戳
$beginThismonth=mktime(0,0,0,date('m'),1,date('Y'));
$endThismonth=mktime(23,59,59,date('m'),date('t'),date('Y'));
echo "本月开始时间戳和结束时间戳",'开始:',$beginThismonth,'结束:',$endThismonth,'br/';
echo "本月开始时间:",date("Y-m-d H:i:s",$beginThismonth),'br/';
echo "本月结束时间:",date("Y-m-d H:i:s",$endThismonth),'br/';
?
用函数date_sub或date_add直接对"年"部分去减就可以了,见下面示例:
mysql select now();
+---------------------+
| now() |
+---------------------+
| 2010-08-25 09:34:41 |
+---------------------+
1 row in set (0.00 sec)
mysql select date_add(now(),interval -1 year);
+----------------------------------+
| date_add(now(),interval -1 year) |
+----------------------------------+
| 2009-08-25 09:34:44 |
+----------------------------------+
1 row in set (0.00 sec)
mysql select date_sub(now(),interval 1 year);
+---------------------------------+
| date_sub(now(),interval 1 year) |
+---------------------------------+
| 2009-08-25 09:34:46 |
+---------------------------------+
1 row in set (0.00 sec)
mysql
就是表中的date字段值为当前的系统日期,例如:
select * from `xxx` where `date`=curdate()
sqlserver使用getdate函数,mysql使用now函数。
如果时间戳是字符串型的,格式通常是yyyy-mm-dd,因此前四位是年,第六、七位是月,最后两位是日。用substring函数来截取,substring(字段名,1,4)是年份,substring(字段名,6,2)是月份,substring(字段名,9,2)是日。