2012-02-22 126 views
1

我想[lastViewedAt] => 1329939559转换成日期格式YYYY-MM-DD, HH:MM时,遇到了错误,但每次我试图我收到此错误信息:试图毫秒转换为日期

Warning: gmdate() expects parameter 2 to be long, object given in ... 

如果我写的毫秒(复制>粘贴)以纯文本形式在我的函数中工作。取而代之的

gmdate('Y-m-d, H:i', $information['lastViewedAt']) 

如下:

gmdate('Y-m-d, H:i', '1329939559') 

我会得到它的正确的结果 - 2012-02-22,19:39。为什么我看到这种行为?

+2

当你var_dump($ information ['lastViewedAt']);'? – jprofitt 2012-02-22 19:50:17

+0

@jprofitt:'object(SimpleXMLElement)[9]字符串'1329940225'(长度= 10)' – Erik 2012-02-22 19:51:34

回答

3

投下你的SimpleXMLElement的内容为字符串或长:

gmdate('Y-m-d, H:i', (int)$information['lastViewedAt']) 
+1

可能最适合投射为'(int)'。 – 2012-02-22 19:57:09

+0

@HighwayofLife我不记得它是不是(int)或(整数),所以我用字符串去。 :-) – ceejayoz 2012-02-22 20:02:06

-1

你为什么不使用日期的功能呢?像这样

echo date('Y-m-d H:i',$information['lastViewedAt']); 
+0

gmdate只是日期函数的GMT版本。那里将出现同样的问题。 – ceejayoz 2012-02-22 19:58:12

+0

刚刚看到你的var_dump和@ceejayoz的输出完全正确,你需要强制转换SimpleXMLElement对象。虽然根据PHP文档的第二个参数应该是一个整数,所以我认为转换为整数将是更合适的。即'gmdate('Y-m-d,H:i',(int)$ information ['lastViewedAt'])' – boug 2012-02-22 20:00:32