我想創建集成電路開始和結束時間(UTC)與格式,如:如何從時區,PHP的字符串日期獲取時間戳?
DTSTART:20141107T110000Z
DTEND:20141107T120000Z
我有以下對象作爲輸入:
"event": {
"timezone": "GMT+2",
"start_time": "2014-11-07 13:00:00", // client local time
"duration": 30
},
function _calc_end_date($start, $duration) {
$start_date = new DateTime($start, new DateTimeZone('UTC'));
$end_date = $start_date->add(new DateInterval('PT'.$duration.'M'));
$end_date_str = $end_date->format('Y-m-d H:i:s');
return $end_date_str;
}
private function dateToCal($timestamp) {
return GMDATE("Ymd\THis\Z", $timestamp);
}
$timezone = $event['timezone']; // ????
$start = strtotime($event['start_time'] . " UTC");
$end_date = $this->_calc_end_date($event['start_time'], $event['duration']);
$end = strtotime($end_date . " UTC");
所以我寫:
"DTSTART:" . $this->dateToCal($start) . $eol .
"DTEND:" . $this->dateToCal($end) . $eol .
這段代碼有效,但是我得到了2小時不同的結果。正如你可以注意到我沒有進入TimeZone,因爲我不知道如何。
$timezone = $event['timezone']; //
不知怎的,我需要解析 「GMT + 2」,並計算
$start = strtotime($event['start_time'] . " UTC");
與TZ。
請幫幫忙,
如果您使用UTC爲什麼你需要一個時區? UTC在全世界都是一樣的 – mgrenier 2014-11-05 20:47:57
客戶端iOS發送當地時間+他的TZ讓我正確計算UTC。 – snaggs 2014-11-05 20:48:38
所以你有UTC,你想計算當地時間? – mgrenier 2014-11-05 20:50:24