2016-01-13 31 views
1

我試圖做的strtotime日期將其轉換成:的strtotime()爲大於2038年

date('Y-m-d', strtotime("10-12-2072")); 

,但它不工作正確的,因爲我已經閱讀php.net的Unix時間戳是從1970年開始,它將在2038年結束,那麼我可以如何使用我的上述代碼? 有什麼建議嗎?

+2

您可能需要查看[Wikipedia link](https://en.wikipedia.org/wiki/Year_2038_problem)它的頁面上有解決方案部分! –

+4

這是我們不斷告訴人們切換到DateTime對象的原因之一,這些對象的日期範圍可以讓宇宙學家和古生物學家滿意(+/- 293億年)....或者至少切換到64位操作系統和64位PHP –

+0

更好地使用php DateTime對象,可以處理各種日期類型,並且可以安全地在2038以後使用。文檔和示例在http://php.net/manual/en/class.datetime .php – maxhb

回答

1

使用DateTime()。它會在2038年以上。一旦你得到的日期和時間在一起,你可以分開吧:

$datetime = "2012-10-19 18:19:56"; 
$Date = explode(" ",$datetime); 
$date = $Date[0]; 
$time = $Date[1]; 

現在你只能有日期。

祝你好運!

0

將字符串解析爲DateTime()構造函數,然後進行相應的格式化。 這裏不需要任何額外的解析邏輯。 如果這仍然不起作用,那麼檢查您是否運行64位系統。

$dateTime = new DateTime('10-12-2072'); 
$datetime->format('Y-m-d');