我有一个Unix时间戳,我想转换为常规时间(String)。 我的Unix时间戳:
1385767232382
我的剧本:
$date = date_create(date('c', "1385767232"), new DateTimeZone('PST'));
echo date_format($date, 'Y-m-d H:i');
我从Unix时间戳中删除了最后三位数,因为我得到了一个非常奇怪的时间,所以我通过删除最后三位数将其从毫秒改为秒。
脚本返回的日期:
2013-11-29 23:20
应该返回的日期:
2013-11-29 15:20
我尝试了其他几个日期,但它们都是一样的。只有时间不好,其余的都没事。
提前谢谢。
编辑:03:20 - > 15:20
答案 0 :(得分:1)
时区不正确,因为当第一个参数指定时区时,忽略date_create
的第二个参数(请参阅docs中的注释)。在您的情况下,使用的格式指定时区,因为date
不明确接受时区是默认的系统时区而不是PST。
这是正确的方法:
$d = date_create('@1385767232');
date_timezone_set($d, new DateTimeZone('PST'));
echo $d->format('Y m d H:i:s'); // 2013 11 29 15:20:32
答案 1 :(得分:0)
试试这个
echo date("Y-m-d",strtotime(1385767232382));
答案 2 :(得分:0)
你可以这样做:
echo(date("Y-m-d H:i", "1385767232"));
答案 3 :(得分:0)
为什么你要做额外的工作,如删除3 digi ..?
以下实际给出正确的.. $ date = date_create(date('c',“1385767232”),new DateTimeZone('PST')); echo date_format($ date,'Y-m-d H:i');
你遇到麻烦可能正在分析时区,确保这一点。