[英]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.