2012-09-05 42 views
3

好吧,所以我有一个表的结果数组,我们有一个开始和结束时间,我们正在检索。开始/结束时间将是这个样子:试图从秒转换到日期

1345497551 

现在我想将其转换为一个真正的时间,例如1345497551可能成为2012/05/09 17:23:12什么的。我发现了一些东西,但没有一个能够正常工作。一个解决方案,我试过,根据什么有人说对这里的另一个问题,是

$createdate = date('H:i:s',$numberofsecs); 

其中$numberofsecs是时间从阵列中拉出。但是每次我们可以进行测试时,这只会重复输出17:00:00

我该如何着手使这项工作正确?

回答

4

假设这是一个标准的UNIX时刻字符串(秒午夜以来1/1/1970),那么你应该能够使用date正如你所说,只是修改格式字符串:

echo date('Y/m/d H:i:s', $numberofsecs); 

的例如你提到你总是得到17:00:00的地方可能是因为你的测试用例都只是日期戳,编码为时间戳,并且与GMT有偏移。 。 。

+0

它看起来当我尝试,它并给我一个日期,但它一定会喜欢不是今天/昨天日期应该是。我用原始帖子中的数字尝试过这个字符串,我得到了1969年12月31日17:00:00回应给我。任何其他建议? – Kynian

+0

当我使用上面的'$ numberofsecs'时,我得到'2012/08/20 23:19:11'。我怀疑你有一个错字,所以你看到将0转换为日期的结果。 – Barmar

+0

啊,是的,你是对的我有一个,谢谢!是否有任何理由,如果$ number ofsecs今天被取回,为什么它会声明日期是2012/08/20而不是2012/09/05?但至少它现在检索正确的东西,谢谢! – Kynian

3

我曾尝试下面的代码:

$ts = 1345497551; 
$date = new DateTime("@$ts"); 
echo $date->format('U = Y-m-d H:i:s'); 

输出:1345497551 = 2012-08-20 21点19分11秒