php strtotime 中+day 或者 +days 的比較

來源:互聯網
上載者:User
+3 day:echo date( 'Y-m-d H:i:s', strtotime( '+3 day' ) );+3 days:echo date( 'Y-m-d H:i:s', strtotime( '+3 days' ) );

輸出的結果都是相同的。

下面都是相似的用法

strtotime( '+1 day' );strtotime( '+3 day' );strtotime( '+1 days' );strtotime( '+3 days' );strtotime( '+1 weeks' );strtotime( '+3 week' );

出現這個問題的原因是php不是一個嚴格的程式設計語言。

strtotime函數的一些用法
1、 strtotime(”JAN”)和strtotime(”January”)
這兩個用法的效果是一樣的,都是返回指定月份的今天,如果指定月份沒有今天,則順延到下一個月。 如在2011-03-31計算二月,代碼:

echo date("Y-m-d H:i:s", strtotime("feb", strtotime("2011-03-31")));

程式會輸出: 2011-03-03 00:00:00。 從表象來看,這個結果也許不一定是我們想要的,但是這也算是一種解決方案,這種方案是由什麼決定的呢? strtotime函數在執行月份的計算時只計算了月份,相當於直接將月份設定為指定的月份的值,而如jan,january都會有一個對應內部數值。
2、 first關鍵字
first是一個輔助型的關鍵字,它可以與星期,天等可以指定確認值的關鍵字組合使用,如求2011年的第一個星期天:

echo date("Y-m-d H:i:s", strtotime("second sunday", strtotime("2011-01-01"))), "<br />";

在PHP的源碼中,對於first與星期和天的組合使用是分開的,即first day對應一個處理操作, 在最終的C實現中,天的值指定為1,即time結構中的d欄位指定為1,如下代碼:

switch (time->relative.first_last_day_of) {           case 1: /* first */               time->d = 1;               break;           case 2: /* last */               time->d = 0;               time->m++;               break;       }

3、previous和next關鍵字
與first類似,previous關鍵字可以與星期,天組合使用,表示指定時間的前一個星期幾或前一天。如下所示代碼:

echo date("Y-m-d H:i:s", strtotime("previous sunday", strtotime("2011-02-01"))), "<br />"; 程式會輸出:2011-01-30 00:00:00


程式求2011-02-01的前一個星期天。
next關鍵字與previous相反,它表示下一個星期幾或後一天。
4、 last關鍵字
last關鍵字既可以作為上一個,也可以作為最後一個。如求上一個星期天的日期:

echo date("Y-m-d H:i:s", strtotime("last sunday", strtotime("2011-02-05"))), "<br />"; 程式會輸出: 2011-01-30 00:00:00


當程式作為最後時,其應用情境是指定日期所在月的最後一天,相當於date(”t”)的結果。如求2000年2月的最後一天:

echo date("Y-m-d H:i:s", strtotime("last day", strtotime("2000-02-01"))), "<br />";

first、previous、last和this關鍵字在re檔案中屬於同一組。
5、 back和front關鍵字
這兩個關鍵字是對一天中的小時的向前和向後操作,其調用格式如下:

echo date("Y-m-d H:i:s", strtotime("back of 24", strtotime("2011-02-01"))), "<br />";  echo date("Y-m-d H:i:s", strtotime("front of 24", strtotime("2011-02-01"))), "<br />";

•back表示將時間設定指定小時值的後一個小時的15分的位置。如果是24點,則算到第二天的0點15分。
•front表示將時間設定指定小時值的前一個小時的45分的位置。如果是0點,則算前一天的23點45分。


上面的代碼輸出:2011-02-02 00:15:00 2011-02-01 23:45:00。 其中back of和front of後接的數組必須大於等於0並且小於等於24。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.