簡體   English   中英

PHP strtotime在UTC時間返回false

[英]PHP strtotime returning false for UTC time

我和我的同事從一些使用strtotime的單元測試中獲得了不同的結果。

差異源於以下這一行:

$value = strtotime('2050-05-01T20:10:29.410Z');

在我的機器上,此結果返回以下內容:

int(2535048629)

而我同事的版本返回false

我們都使用PHP 5.4.14和PHPUnit 3.724。

有誰知道導致這種差異的原因,是否有更可靠的方法?

它可能與32位和64位有關。 2050年的時間戳大於32位。

這是因為他使用的是32位,而您使用的是64位計算機。 看到什么echo PHP_INT_MAX; 在兩台機器上都返回。 在這里閱讀更多。

如果希望在32位計算機上獲取時間戳,可以將DateTime用作:

$value = new DateTime('2050-05-01T20:10:29.410Z');
echo $value->format('U');  // returns 2535048629 as string

或將輸入的時間戳格式為:

$value = new DateTime('@2535048629');
echo $value->format('r'); // Sun, 01 May 2050 20:10:29 +0000

而不是date('r', '2535048629'); 在32位計算機上不起作用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM