2015-06-23 35 views
-1

我有這樣分裂使用sscanf的

2015-10-09T19:30:00 

list($y, $M, $d, $h, $m, $s) = sscanf($instance->Start, "$d-$d-$dT$d:$d:$d"); 

日期日期^我試圖將此sscanf的部件分開了,但我在T節

最終要得到的bug像這樣

$z = "Europe/London"; 
$timestamp = $d."-".$M."-".$y."T".$h.":".$m.":".$s." ".$z; 

回答

1

您可以使用DateTime接口 -

$date = new DateTime('2015-10-09T19:30:00'); 
echo $date->format('d-m-Y').' T '.$date->format('H:i:s').' Europe/London'; 

輸出

09-10-2015 T 19:30:00 Europe/London 

正確答案

echo $date->format('d-m-Y').' UTC '.$date->format('H:i:s').' Europe/London'; 
+0

其關閉 - 但它轉換爲UNIX時間戳date_default_timezone_set(「歐洲/倫敦),當我得到凌晨2:30 ; $ date = new DateTime($ instance-> Start); $ tmp [「FullData」] = strtotime($ date-> format('d-m-Y')。'T'。$ date-> format('H:i:s')。'Europe/London'); –

+0

你必須改變時區爲'T' - > UTC' –

+0

但我需要的時區是格林尼治標準時間 - 倫敦時間...所以真的要出來19:30 –

0
<?php 

$date = "2015-10-09T19:30:00"; 
$z = "Europe/London"; 

sscanf($date, "%d-%d-%dT%d:%d:%d", $year, $month, $day, $hours, $minutes, $seconds); 

$timestamp = $day."-".$month."-".$year."T".$hours.":".$minutes.":".$seconds." ".$z; 
echo $timestamp; 

?>