2013-03-20 95 views
4

試圖解析1942年5月5日日期時間PHP的致命錯誤具有負時間戳

-872726549

DatTime::__construct() 

Failed to parse time string (-872726549) at position 7 (4): 
Unexpected character 

同樣對於前1 1 1970

1969年12月31日有相同的錯誤所有daties

我在Windows上使用XAMPP,PHP 5.4

這三ggers錯誤:

$topv=-872726549; 
$compared_time=new DateTime($topv); 
+3

你知道,時間戳在0和結束開始在2最大的32次冪?時間戳總是正整數。# – ITroubs 2013-03-20 20:18:09

+0

我遇到了'$ date = $ year .'-'。$ month' - '。$ day'的負值。 」 .date( 「H:I:S」); $ datev = strtotime(date($ date),time());' – lbennet 2013-03-20 20:19:24

+0

您是否閱讀過DateTime的文檔? 'public DateTime :: __ construct()([string $ time =「now」[,DateTimeZone $ timezone = NULL]])'它也明確指出:'time:'日期/時間字符串。有效的格式在日期和時間格式中解釋。'' – ITroubs 2013-03-20 20:25:32

回答

1

根據文檔中,你應該做這樣的:

$topv='1930-08-09'; 
$compared_time=new DateTime($topv); 
+0

對,它應該是'$ date = $ year。''。$ month。''。$ day。' 」 .date( 「H:I:S」); $ DATEV =的strtotime(日期($日期),時間()); $ datev = date('ymd H:i:s',$ datev);'並且沒有錯誤,謝謝,它必須處理一個會檢查strpos - 並返回其他值而不是日期格式的函數 – lbennet 2013-03-20 20:33:36

+0

如果你需要兩個日期之間的差異,你可以用一些DateTime特定功能來做到這一點 – ITroubs 2013-03-20 20:35:58

+0

請看這裏:http://www.php.net/manual/en/datetime.diff.php – ITroubs 2013-03-20 20:36:30