2015-06-23 2 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

в конечном счете хочет что-то вроде этого

$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

его близко - но я получаю 2:30 утра при преобразовании его временной метки date_default_timezone_set UNIX ('Europe/London') ; $ date = new DateTime ($ instance-> Start); $ tmp ["FullData"] = strtotime (формат $ date-> ('d-m-Y'). 'T'. $ Date-> format ('H: i: s'). 'Европа/Лондон'); –

+0

Вы должны изменить часовой пояс как 'T' ->' UTC' –

+0

, но мне нужен часовой пояс, чтобы быть GMT - по лондонскому времени ... так что его нужно было выходить 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; 

?> 
Смежные вопросы