2013-03-18 219 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