2016-02-06 2 views
0

У меня есть переменная, как это:PHP с переменной указываете ей

$event_start_date_hour_ISO = str_replace(':',', ',$event_start_hour).', 0, '.date('d, m, Y', $event_start_day); 

echo результат $event_start_date_hour_ISO является 11, 30, 0, 06, 02, 2016. Если я в следующем:

echo date(DATE_ATOM, mktime($event_start_date_hour_ISO)) 

В результате 2016-02-06T11:48:08+02:00.

Если я:

echo date(DATE_ATOM, mktime(11, 30, 0, 06, 02, 2016)) 

Результат, если правильно:

2016-06-02T11:30:00+03:00 

Кроме +03:00, мой UTC + 2.

Что я делаю неправильно? Как поместить данные из переменной и получить правильный ответ?

+0

Какова ценность $ event_start_day? –

ответ

0

Я не уверен, что понял вашу проблему. Но я думаю, что вы перевернули месяц и день в функции mktime.

mktime(Hour, minute , second, month, day, year); 

сравни: http://php.net/manual/en/function.mktime.php

+0

lol, yep)))) Thx очень –

+0

Добро пожаловать. Пожалуйста, не забудьте подтвердить ответ и отметить как разрешенный – dev35000

0

Похоже DateTime класс полезен здесь.

$event_start_day; // A timestamp 
$event_start_hour; // A string in format... H:i:s.... 13:30:00 
$event_arr = explode(':', $event_start_hour); 
$event_date = new DateTime(); 
$event_date->setTimestamp($event_start_day); 
$event_date->setTime(
    $event_arr[0], 
    $event_arr[1], 
    $event_arr[2], 
); 
echo $event_date->format('Y-m-d H:i:s'); 

Также может быть полезно посмотреть на DateTimeZone.

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