我有一个像1397105576
这样的时间戳,我需要将其转换为数据格式。我用过:
echo $today = date('20y-m-d H:m:s',"1397105576");
我得到了:
严重性:警告
消息:date()期望参数2为long,给定对象
在codeigniter框架中。
更新:
我找到了答案
vaiable应该转换为long
即
echo $today = date('20y-m-d H:m:s',intval("1397105576"));
答案 0 :(得分:3)
echo date('Y-m-d H:m:s',"1397105576");
<强>返回强>
2014-04-10 14:04:56
<强>更新强>
这应该在codeigniter中工作...但是有一个CI函数可以执行与上面类似的操作:
$datestring = "Year: %Y Month: %m Day: %d - %h:%i %a";
$time = time();
echo mdate($datestring, $time);
有关此内容的更多信息,请访问user guide。您可能对unix_to_human()
函数感兴趣。
答案 1 :(得分:2)
除了罗素迪亚斯错误地使用m作为分钟而不是我
之外,似乎到处都是Y-m-d H:我:不是“Y-m-d H:m:s”
答案 2 :(得分:1)
您的代码工作正常,但请再次尝试:
<?php
echo $today = date('Y-m-d H:m:s',1397105576);
?>
答案 3 :(得分:0)
[编辑]
我将在这里留下我的答案,指出/教你PHP的对象/打字(+日期函数!)系统的非CodeIgnitor消毒版本,但我强烈建议使用并接受Russell Dias的回答
你的例子是100%的文字吗?
您的代码行是echo $today = date('20y-m-d H:m:s',"1397105576");
还是更像echo $today = date('20y-m-d H:m:s',"$date");
?
如果是后者,并且变量是由类创建的,那么它可能没有正确输入。
你可能会使用......我认为int就足够了,我认为你可以做一些类似echo $today = date('20y-m-d H:m:s',(int)$date);
的事情,假设你的代码行实际上不是字面意思。
我不是100%确定int可以工作,如果没有,(float)是唯一可能的其他数字类型。也许(字符串)?
请参阅Type Juggling。
顺便说一句,为什么你使用20y?请将其更改为Y
来自PHP's Date Docs:
Y | A full numeric representation of a year, 4 digits | Examples: 1999 or 2003
y | A two digit representation of a year | Examples: 99 or 03