首先要考慮給數(shù)據(jù)庫減壓,意思就是讓數(shù)據(jù)庫做最簡單的事情。你可以把條件在php里邊組裝好,然后讓mysql只單一的執(zhí)行查詢就好了,php的時間代碼給你貼一下吧
成都創(chuàng)新互聯(lián)公司是一家專業(yè)提供寧夏企業(yè)網(wǎng)站建設,專注與網(wǎng)站建設、成都做網(wǎng)站、H5開發(fā)、小程序制作等業(yè)務。10年已為寧夏眾多企業(yè)、政府機構(gòu)等服務。創(chuàng)新互聯(lián)專業(yè)的建站公司優(yōu)惠進行中。
?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獲取今日開始時間戳和結(jié)束時間戳?
$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?"今日開始時間戳和結(jié)束時間戳",'開始:',$beginToday,'結(jié)束:',$endToday,'br/';
echo?"今日開始時間:",date("Y-m-d?H:i:s",$beginToday),'br/';
echo?"今日結(jié)束時間:",date("Y-m-d?H:i:s",$endToday),'br/';
echo?'hr/';
//php獲取昨日起始時間戳和結(jié)束時間戳
$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?"昨日開始時間戳和結(jié)束時間戳",'開始:',$beginYesterday,'結(jié)束:',$endYesterday,'br/';
echo?"昨日開始時間:",date("Y-m-d?H:i:s",$beginYesterday),'br/';
echo?"昨日結(jié)束時間:",date("Y-m-d?H:i:s",$endYesterday),'br/';
echo?'hr/';
//php獲取上周起始時間戳和結(jié)束時間戳
$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?"上周開始時間戳和結(jié)束時間戳",'開始:',$beginLastweek,'結(jié)束:',$endLastweek,'br/';
echo?"上周開始時間:",date("Y-m-d?H:i:s",$beginLastweek),'br/';
echo?"上周結(jié)束時間:",date("Y-m-d?H:i:s",$endLastweek),'br/';
echo?'hr/';
//php獲取本月起始時間戳和結(jié)束時間戳
$beginThismonth=mktime(0,0,0,date('m'),1,date('Y'));
$endThismonth=mktime(23,59,59,date('m'),date('t'),date('Y'));
echo?"本月開始時間戳和結(jié)束時間戳",'開始:',$beginThismonth,'結(jié)束:',$endThismonth,'br/';
echo?"本月開始時間:",date("Y-m-d?H:i:s",$beginThismonth),'br/';
echo?"本月結(jié)束時間:",date("Y-m-d?H:i:s",$endThismonth),'br/';
?
以系統(tǒng)當前時間為起點,得到昨天一天數(shù)據(jù):
select * from 表名 where Timeunix_timestamp(date(CURDATE())) and Time=unix_timestamp(DATE_ADD(date(CURDATE()),INTERVAL -1 DAY))
SELECT * FROM table WHERE time = ADDDATE(DATE_FORMAT(NOW(),'%Y-%m-%d 8:00:00'),INTERVAL -1 DAY)
AND time = ADDDATE(DATE_FORMAT(NOW(),'%Y-%m-%d 15:00:00'),INTERVAL -1 DAY) ;
1、新建一個test數(shù)據(jù)庫,在數(shù)據(jù)庫里創(chuàng)建一張data數(shù)據(jù)表。
2、在表內(nèi)插入5條測試數(shù)據(jù)。
3、新建一個php文件,命名為test.php。
4、在test.php文件內(nèi),使用header()方法設置文件執(zhí)行的編碼為utf8,避免輸出中文時產(chǎn)生亂碼。
5、在test.php文件內(nèi),使用數(shù)據(jù)庫賬號、密碼、名稱,利用mysqli創(chuàng)建數(shù)據(jù)庫連接,并使用set_charset()方法設置獲得數(shù)據(jù)的編碼為utf8。
6、在test.php文件內(nèi),編寫sql語句,使用TO_DAYS()分別獲得當前的天數(shù)和數(shù)據(jù)表ctime字段數(shù)據(jù)的天數(shù),兩者之差小于3天,即前三天,以此為條件查詢data數(shù)據(jù)表的數(shù)據(jù),使用query()執(zhí)行sql語句,同時使用fetch_all()方法將獲得的數(shù)據(jù)資源轉(zhuǎn)換為二維數(shù)組。
7、在test.php文件內(nèi),使用foreach方法遍歷上一步獲得的二維數(shù)組,輸出數(shù)據(jù)的id和姓名。
8、在瀏覽器運行test.php文件,查看程序執(zhí)行的結(jié)果,可見,成功從數(shù)據(jù)庫獲得前三天的數(shù)據(jù)。