2013-03-18 217 views
0

好吧,這與我提出的另一個問題有關,但因爲我現在指出了 這個問題,我認爲這個問題在一個新問題上會更清楚。strtotime兼容性

我遇到的問題是關於PHP 4.4

我有一個更大的腳本下的strtotime是PHP 4.4下失敗,但PHP 5+下工作

要檢查它是這樣我寫了下面和將它複製到運行PHP 4.4和其他PHP 5.3的兩個服務器之一 。

<?php 
    $my_time = '2013-03-18T21:38:58.000Z'; 
    $my_time = strtotime($my_time); 
    echo $my_time; 

?> 

PHP 4.4下的輸出是:-1

PHP 5.3下的輸出是:1363642738

有沒有辦法讓PHP 4.4下相同的結果,5.3?

在此先感謝您的幫助!

+0

如果你堅持一個版本可能會容易得多 – Ibu 2013-03-18 23:18:38

+0

你可能會在這裏找到你的問題的答案:http: //www.php.net/manual/en/function.strtotime.php – Jean 2013-03-18 23:18:48

+0

不幸的是我不知道什麼版本正在運行。 – onelove 2013-03-18 23:27:13

回答

1

我沒有安裝PHP 4來測試,但嘗試從最後刪除.000Z,所有的例子PHP.net上的strtotime頁面沒有那一點PHP 4.4可能不支持它。 如果這樣做最終可以用substr解析任何時間戳($ my_time,0,19)

+0

你是一個明星!發出一個虛擬的擁抱:-)就是這樣 - 這麼簡單的糾正 - 歡呼隊友! – onelove 2013-03-20 00:42:01

3

-1是爲PHP < 5.1失效代碼。這讓我認爲PHP 4無法解析該字符串。

這意味着你將不得不使用格式兩個版本的支持。作爲黑客,你可以做一些字符串操作。如果你可以改變字符串的格式,那就是你最好的路線。 (其實,你最好的路線是從PHP 4運行地獄)。

+3

+1 for *從PHP 4 *跑出地獄。用完今天所有的投票:(。 – Jean 2013-03-18 23:19:28

+0

想改變,但它不是我的電話。對所有這些仍然新鮮,但會看看鏈接,看看我能否解決 - 非常感謝 – onelove 2013-03-18 23:28:59

+0

現在,它是'假',而不是'-1'IIRC。 – 2013-03-18 23:29:28