strtotime問題:
strtotime('-x month'); 在涉及到月份修改的時候,可能不會得到預料的結果。
此為php的乙個bug:
如:當前時間為: 2011-08-31 17:21:22
<?php
date_default_timezone_set('asia/shanghai');
$t = time();
print_r(array(
date('y年m月',$t),
date('y年m月',strtotime('- 1 month',$t)),
date('y年m月',strtotime('- 2 month',$t)),
));?>
上面**輸出:
array
([0] => 2023年08月
[1] => 2023年07月
[2] => 2023年07月
)而預期的結果是:
array
([0] => 2023年08月
[1] => 2023年07月
[2] => 2023年06月
)****************************************====
可以用如下方法解決:
<?php
date_default_timezone_set('asia/shanghai');
$first_day_of_month = date('y-m',time()) . '-01 00:00:01';
$t = strtotime($first_day_of_month);
print_r(array(
date('y年m月',$t),
date('y年m月',strtotime('- 1 month',$t)),
date('y年m月',strtotime('- 2 month',$t)),
));?>
輸出:array
([0] => 2023年08月
[1] => 2023年07月
[2] => 2023年06月
)
對於自加自減的理解
前言 c語言中很多地方都會用自加 自減 運算子來參與一些運算,這也是c語言的主要特色之一,如果可以掌握並合理的利用這一特性,可以優化我們的c程式。而自加自減也是對於剛接觸c語言程式設計的人來說,比較難想通,很容易造成錯誤,可是考試的卷子也經常出現類似的題目。自增自減的定義 自增 使變數的值加1 自減...
令人困惑的strtotime
經常會有人被strtotime結合 1 month,1 month,next month的時候搞得很困惑,然後就會覺得這個函式有點不那麼靠譜,動不動就出問題.用的時候就會很慌 這不,剛剛就有人在微博上又問我 鳥哥,今天是2018 07 31 執行 date y m d strtotime 1 mon...
令人困惑的strtotime
經常會有人被strtotime結合 1 month,1 month,next month的時候搞得很困惑,然後就會覺得這個函式有點不那麼靠譜,動不動就出問題.用的時候就會很慌 這不,剛剛就有人在微博上又問我 今天是2018 07 31 執行 date y m d strtotime 1 month ...