PHP 关于strtotime(" x month") bug的解决
PHP 关于strtotime("- x month") bug的解决
strtotime('-x month'); 在涉及到月份修改的时候,可能不会得到预料的结果。
此为php的一个bug:
https://bugs.php.net/bug.php?id=27793
?
如:当前时间为: 2011-08-31 17:21:22
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] => 2011年08月
??? [1] => 2011年07月
??? [2] => 2011年07月
)
而预期的结果是:
Array
(
??? [0] => 2011年08月
??? [1] => 2011年07月
??? [2] => 2011年06月
)
?
============================================
?
可以用如下方法解决:
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] => 2011年08月
??? [1] => 2011年07月
??? [2] => 2011年06月
)

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

熱門話題

使用PHP程式開發時,經常會碰到一些警告或錯誤的提示訊息。其中,可能出現的一個錯誤提示是:PHPWarning:date()expectsparameter2tobelong,stringgiven。這個錯誤的提示訊息意思是:函數date()的第二個參數期望是長整型(long),但是實際傳遞給它的是字串(string)。那麼,我們

如果您正在尋找根據系統時間戳記自動建立文件和資料夾並為其命名的方法,那麼您來對地方了。有一個超級簡單的方法可以用來完成這項任務。然後,建立的資料夾或檔案可用於各種目的,例如儲存檔案備份、根據日期對檔案進行排序等。在本文中,我們將透過一些非常簡單的步驟來解釋如何在Windows11/10中自動建立檔案和資料夾,並根據系統的時間戳記對其進行命名。使用的方法是批次腳本,非常簡單。希望你喜歡閱讀這篇文章。第1節:如何根據系統目前時間戳記自動建立資料夾並命名第1步:首先,導覽至要在其中建立資料夾的父資料夾,

一.介紹java.util套件中的Date類別表示特定的時間,精確到毫秒。如果要想使用我們的Date類,那麼我們必須得引入我們的Date類。 Date類別直接寫入年份是無法得到正確的結果的。因為java中Date是從1900年開始算的,所以前面的第一個參數只要填入從1900年後過了多少年就是你想要得到的年份。月需要減1,日可以直接插入。這種方法用的比較少,常用的是第二種方法。這種方法是將一個符合特定格式,例如yyyy-MM-dd,的字串轉換成為Date類型的資料。首先,定義一個Date類型的物件Date

標題:C#中使用Array.Sort函數對陣列進行排序的範例正文:在C#中,陣列是一種常用的資料結構,經常需要對陣列進行排序運算。 C#提供了Array類,其中有Sort方法可以方便地對陣列進行排序。本文將示範如何使用C#中的Array.Sort函數對陣列進行排序,並提供具體的程式碼範例。首先,我們要先了解Array.Sort函數的基本用法。 Array.So

如何使用Date類別的getTime()方法取得日期的毫秒錶示形式在Java中,Date類別是用來表示日期和時間的類別。它提供了許多有用的方法來操作和獲取日期物件的資訊。其中,getTime()方法是Date類別中的重要方法,它可以傳回日期物件的毫秒錶示形式。接下來,我們將詳細介紹如何使用此方法來取得日期的毫秒錶示形式,並提供對應的程式碼範例。使用Date類別的g

Python中有許多優秀的日曆庫和日期庫供我們使用,這些庫可以幫助我們處理日期和日曆相關的操作。接下來,我將為大家介紹幾個常用的選擇,並提供對應的程式碼範例。 datetime庫:datetime是Python內建的日期和時間處理模組,提供了許多日期和時間相關的類別和方法,可以用於處理日期、時間、時間差等操作。範例程式碼:importdatetime#取得當

Stringbuild類別由於String類別的物件內容不可改變,每次拼接都會建構一個新的String對象,既耗時,又浪費記憶體空間這時需要透過java提供的StringBuild類別來解決這個問題StringBuilder又稱為可變字元序列,它是一個類似String的字串緩衝區,可以看成是一個容器,容器中可以裝很多字串可變指的是StringBuilder物件中的內容是可變的建構方法publicStringBuilder():建立一個空的緩衝區publicStringBuilder(Stringsr

在PHP中,有許多強大的陣列函數可以讓陣列的操作更加方便和快速。當我們需要將兩個陣列拼成一個關聯數組時,可以使用PHP的array_combine函數來實現這一操作。這個函數其實是用來將一個陣列的鍵當作另一個陣列的值,合併成一個新的關聯數組。接下來,我們將會講解如何使用PHP中的array_combine函數將兩個陣列拼成關聯數組。了解array_comb
