php中一個(gè)有意思的日期邏輯處理
更新時(shí)間:2012年03月25日 22:25:40 作者:
今天處理了一個(gè)很小的問題。需求是這樣的,從周一到周日只能看到上周一到上周日的數(shù)據(jù)。這里直接從數(shù)據(jù)庫里根據(jù) date 字段查詢 范圍即可
今天處理了一個(gè)很小的問題。
需求是這樣的,從周一到周日只能看到上周一到上周日的數(shù)據(jù)。
這里直接從數(shù)據(jù)庫里根據(jù) date 字段查詢 范圍即可。
但需要PHP生成 開始日期和結(jié)束日期。
最開始,我直接這么處理。
$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 這樣處理沒有問題。
如果日期是 2011-07-18 ,$start_date 則會(huì)等于 2011-07-04,還活在上周。
于是換了種方法
$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 這樣處理沒有問題,和我們期望的一樣。
如果日期是 2011-07-24,我們期望的 $start_date 是 2011-07-11,但實(shí)際返回的是 2011-07-18。
不得已,我再改了下方法
$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 了。
需求是這樣的,從周一到周日只能看到上周一到上周日的數(shù)據(jù)。
這里直接從數(shù)據(jù)庫里根據(jù) date 字段查詢 范圍即可。
但需要PHP生成 開始日期和結(jié)束日期。
最開始,我直接這么處理。
復(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 這樣處理沒有問題。
如果日期是 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 這樣處理沒有問題,和我們期望的一樣。
如果日期是 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 了。
相關(guān)文章
Dedecms V3.1 生成HTML速度的優(yōu)化辦法
Dedecms V3.1 生成HTML速度的優(yōu)化辦法...2007-03-03巧用php中的array_filter()函數(shù)去掉多維空值的代碼分享
在我們開發(fā)過程中,判斷數(shù)組為空時(shí)你會(huì)想到什么方法呢?首先想到的應(yīng)該是empty函數(shù),不過直接用empty函數(shù)判斷為空是不對(duì)的,因?yàn)楫?dāng)這個(gè)值是多維數(shù)的時(shí)候,empty結(jié)果是有值的2012-09-09PHP之將POST數(shù)據(jù)轉(zhuǎn)化為字符串的實(shí)現(xiàn)代碼
今天來分享一個(gè)方便我們做LOG日志記錄的自定義函數(shù),需要將POST數(shù)據(jù)轉(zhuǎn)化為字符串,需要的朋友可以參考下2016-11-11Laravel框架使用技巧之使用url()全局函數(shù)返回前一個(gè)頁面的地址方法詳解
這篇文章主要介紹了Laravel框架使用技巧之使用url()全局函數(shù)返回前一個(gè)頁面的地址,需要的朋友可以參考下2020-04-04