PHP 的 strtotime 出現這種情況怎麼解釋?

時間 2021-06-01 06:27:48

1樓:劉聲傑

初步看了你這個問題的描述,應該是PHP的時區沒有設定對,你開啟php.ini檔案,找到date.timezone這個配置,然後設定為date.

timezone = Asia/Shanghai,就可以了。

2樓:邱昊宇

為什麼 strftime 解析出來的第 0 周,用 strtotime 解析卻失敗?看 strtotime 的文件:

Description:

ISO year with ISO week

Format:

YY "-"? "W" W

Examples:

"2008W27", "2008-W28"

strtotime 裡的「??-W??」格式,W 前面應該是 ISO Year、後面應該接 ISO Week。

所以為什麼要畫蛇添足在「年」「周」前面寫上「ISO」,是為了裝逼顯得自己很專業嗎?我們來看 strftime 的文件:

你看,%Y 和 %G 出來的是兩種「年」,%W 和 %V 出來的是兩種「周」,加不加 ISO 確實是有區別的。strtotime 裡的 W 前後需要的是 %G 和 %V 的輸出。拿 %Y 和 %W 的輸出寫進去,可不就是拿前朝的劍斬本朝的官麼?

echo

strftime

("%G-%V"

,strtotime

("2016-01-01"

));// 輸出 2015-53

echo

strftime

("%Y-%m-%d"

,strtotime

("2015-W53"

));// 輸出 2015-12-28(當周第一天)

即:公曆的 2016 年 1 月 1 日,還在 ISO 2015 年的第 53 周(2015-12-28 ~ 2016-01-03)。

後面的疑問同理,ISO 年和公曆的年不同、ISO 周和公曆的周不同。

p.s. 關於問題裡提到的「第 0 周」,其實你也用不著觀察和猜想,看 strftime 的文件就可以知道標準答案了:

%WA numeric representation of the week of the year, starting with the first Monday as the first week.

有疑問還是先看文件吧。

為什麼突然出現大規模黑php風潮?

社群質量不是很好,鳥哥這樣的高手畢竟鳳毛麟角,我呆過的社群 PHP 的印象很糟因為很多時候別人根本懶得去黑他們,然後 PHP 的程式設計師跳出來踢館砸場,發個引戰的話題,最後被打臉。你讓別人怎麼說,不想計較就發個 PHP 是最好的語言回應一下 itlr 天天被黑,一點也不突然。行業裡有一類人,明明是...

php時區的問題?

貓咪咪 自PHP5.0開始,用PHP獲取系統時間時,時間比當前時間少8個小時。原因是PHP.ini中沒有設定timezone時,PHP是使用的UTC時間,所以在中國時間要少8小時。解決辦法 1.在PHP.ini檔案中修改設定。Date Defines the default timezone use...

如何看待PHP的發展?

PHP經歷了 flash時代 xml時代 web2.0時代 ajax時代 vr時代 區塊鏈時代 人工智慧時代 唱了好幾輪好嗎 一代一代的過去 PHP穩如泰山 什麼時代人類不用文字了,什麼時代PHP才會功成身退。人類會不用文字嗎?有可能 也許用意念交流呢。意念時代,樓主再發這個帖子來問 Sinri E...