php中一個(gè)有意思的日期邏輯處理
更新時(shí)間:2012年03月25日 22:25:40 作者:
今天處理了一個(gè)很小的問題。需求是這樣的,從周一到周日只能看到上周一到上周日的數(shù)據(jù)。這里直接從數(shù)據(jù)庫(kù)里根據(jù) date 字段查詢 范圍即可
今天處理了一個(gè)很小的問題。
需求是這樣的,從周一到周日只能看到上周一到上周日的數(shù)據(jù)。
這里直接從數(shù)據(jù)庫(kù)里根據(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ù)庫(kù)里根據(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)文章
詳談php中 strtr 和 str_replace 的效率問題
下面小編就為大家?guī)?lái)一篇詳談php中 strtr 和 str_replace 的效率問題。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧2017-05-05
解決微信授權(quán)回調(diào)頁(yè)面域名只能設(shè)置一個(gè)的問題
在做項(xiàng)目集成微信登錄以及微信支付的時(shí)候,都需要進(jìn)行用戶授權(quán)。本文主要介紹了關(guān)于網(wǎng)頁(yè)授權(quán)回調(diào)域名的說明以及解決微信授權(quán)回調(diào)頁(yè)面域名只能設(shè)置一個(gè)問題的方案。需要的朋友可以參考借鑒2016-12-12
asp.net和php的區(qū)別點(diǎn)總結(jié)
在本篇文章里小編給大家分享了關(guān)于asp.net和php的區(qū)別的相關(guān)知識(shí)點(diǎn),需要的朋友們可以分享下。2019-10-10
PHP.ini中配置屏蔽錯(cuò)誤信息顯示和保存錯(cuò)誤日志的例子
這篇文章主要介紹了PHP.ini中配置屏蔽錯(cuò)誤信息顯示和保存錯(cuò)誤日志的例子,需要的朋友可以參考下2014-05-05
mysql數(shù)據(jù)庫(kù)差異比較的PHP代碼
這天遇見個(gè)需求:由于升級(jí)系統(tǒng) 這些系統(tǒng)從A庫(kù)升級(jí)到B庫(kù),但是不知道數(shù)據(jù)庫(kù)添加了哪些字段和增加了哪些表2012-02-02
PHP調(diào)用存儲(chǔ)過程返回值不一致問題的解決方法分析
這篇文章主要介紹了PHP調(diào)用存儲(chǔ)過程返回值不一致問題的解決方法,結(jié)合實(shí)例形式分析了存儲(chǔ)過程調(diào)用返回值不一致的原因與解決方法,需要的朋友可以參考下2016-04-04
PHP簡(jiǎn)單獲取多個(gè)checkbox值的方法
這篇文章主要介紹了PHP簡(jiǎn)單獲取多個(gè)checkbox值的方法,結(jié)合實(shí)例形式分析了php表單操作中針對(duì)checkbox值的傳遞與獲取技巧,需要的朋友可以參考下2016-06-06

