2012-10-16 31 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