2012-10-16 33 views
0

我有一个以纪元为单位的ms字段,例如1350393140000.我需要在PhP中将此字段作为日期时间,将其时间部分更改为7AM(UTC时间)并将其转换从时代回到ms。我怎样才能做到这一点?php从时代ms获取日期ms

+0

如果你知道时间戳的时区,你可以很容易。减去/添加的差异UTC。 – ddinchev

+0

@Veseliq:unix时间戳始终以UTC。但你怎么知道其中的差异? – Evert

回答

2
$input = 1350393140000; 

$dt = new DateTime('@' . floor($input/1000)); 
$dt->setTimeZone(new DateTimeZone('UTC')); 
$dt->modify('07:00'); 

$output = $dt->format('U') * 1000; 
+0

仅供参考:仅适用于PHP> = 5.3.0 –

+0

为什么?我确实在这种情况下确保不使用任何特定的5.3 .. – Evert

+0

Wooops,不理我,与以前的问题混淆! –

0
date_default_timezone_set('UTC'); 
$ts = 1350393140000/1000; 
$ts = mktime(7, date('i', $ts), date('s', $ts), date('n', $ts), date('j', $ts), date('Y', $ts)); 
$ts = $ts * 1000; 
+0

但的确,现在应该使用DateTime类。 – deceze