|
需求是這樣的,從周一到周日只能看到上周一到上周日的數(shù)據(jù)。
這里直接從數(shù)據(jù)庫(kù)里根據(jù) date 字段查詢 范圍即可。
但需要php生成 開(kāi)始日期和結(jié)束日期。
最開(kāi)始,我直接這么處理。
復(fù)制代碼 代碼如下:
$start_date = date('Y-m-d' , strtotime("-2 week monday"));
$end_date = date('Y-m-d' , strtotime("$start_date +6 day"));
假如日期是 2011-07-19,$start_date= 2011-07-11 這樣處理沒(méi)有問(wèn)題。
如果日期是 2011-07-18 ,$start_date 則會(huì)等于 2011-07-04,還活在上周。
于是換了種方法
復(fù)制代碼 代碼如下:
$getWeekDay = date("w");
$startDay = date("Y-m-d", mktime(0, 0, 0, date("m"), date("d") - $getWeekDay + 1 - 7, date("Y")));
$endDay = date("Y-m-d", strtotime("+6 day $startDay"));
假如日期是 2011-07-19,$start_date= 2011-07-11 這樣處理沒(méi)有問(wèn)題,和我們期望的一樣。
如果日期是 2011-07-24,我們期望的 $start_date 是 2011-07-11,但實(shí)際返回的是 2011-07-18。
不得已,我再改了下方法
復(fù)制代碼 代碼如下:
$getWeekDay = date("N") ;
$startDay = date("Y-m-d", mktime(0, 0, 0, date("m"), date("d") - $getWeekDay + 1 - 7, date("Y")));
$endDay = date("Y-m-d", strtotime("+6 day $startDay"));
這下就OK 了。
php技術(shù):php中一個(gè)有意思的日期邏輯處理,轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。