日韩天天综合网_野战两个奶头被亲到高潮_亚洲日韩欧美精品综合_av女人天堂污污污_视频一区**字幕无弹窗_国产亚洲欧美小视频_国内性爱精品在线免费视频_国产一级电影在线播放_日韩欧美内地福利_亚洲一二三不卡片区

php 深入理解strtotime函數(shù)(2)_PHP教程

編輯Tag賺U幣
教程Tag:暫無Tag,歡迎添加,賺取U幣!

推薦:如何使用PHP計(jì)算上一個(gè)月的今天
一日,遇到一個(gè)問題,求上一個(gè)月的今天。 最開始我們使用 strtotime(-1 month) 函數(shù)求值,發(fā)現(xiàn)有一個(gè)問題,月長度不一樣的月份的計(jì)算結(jié)果有誤。 比如:2011-03-31,得到的結(jié)果是2011-03-03。我們先不追究什么問題,先看如何解決問題。 此時(shí),想起PHP中有一個(gè)mktime函數(shù)


strtotime(”-1 month”)求值失敗的原因
雖然strtotime(”-1 month”)這種方法對于后一個(gè)月比前一個(gè)月的天數(shù)的情況會(huì)求值失敗,但是從其本質(zhì)上來說,這并沒有錯(cuò)。 PHP這樣實(shí)現(xiàn)也無可厚非。只是我們的需求決定了我們不能使用這種方法,因此我們稱其為求值失敗。
我們來看它的實(shí)現(xiàn)過程,由于沒有第二個(gè)參數(shù),所以程序使用默認(rèn)的當(dāng)前時(shí)間。 第一個(gè)參數(shù)傳入的是-1 month字符串,這個(gè)字符串所對應(yīng)的re文件中的正則為:

 代碼如下:
reltextunit = (('sec'|'second'|'min'|'minute'|'hour'|'day'|'fortnight'|'forthnight'|'month'|'year') 's'?) | 'weeks' | daytext;
relnumber = ([+-]*[ /t]*[0-9]+);
relative = relnumber space? (reltextunit | 'week' );


最終relative會(huì)對應(yīng)一系列操作,程序會(huì)識(shí)別出前面的-1 和后面的month字符串,month對應(yīng)一種操作類型:TIMELIB_MONTH 。 在此之后,根據(jù)識(shí)別出來的數(shù)字和操作類型執(zhí)行操作,如下代碼:

 代碼如下:
case TIMELIB_MONTH: s->time->relative.m += amount * relunit->multiplier; break;


如上代碼,則是直接記錄月份的相對值減一。 但是對于類似于3月31號(hào)這樣的情況,2月沒有31號(hào),程序會(huì)自動(dòng)將日期計(jì)算到下一個(gè)月。

分享:php二分法查找數(shù)組是否包含某一元素
二分法查找數(shù)組是否包含某一元素,兼容正反序,代碼實(shí)現(xiàn): 代碼如下: ?php $searchValue = (int)$_GET['key']; function search(array $array, $value) { $max = count($array)-1; $min = 0; $isAscSort = $array[$min] $array[$max]; while (TRUE) { $sum = $min+$max

共2頁上一頁12下一頁
來源:模板無憂//所屬分類:PHP教程/更新時(shí)間:2013-05-23
相關(guān)PHP教程