php mktime来自变量

时间:2016-02-06 14:54:24

标签: php date mktime

我有一个这样的变量:

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

echo的{​​{1}}结果为$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 除外,我的UTC + 2。

我做错了什么?如何从变量中提取数据并得到正确答案?

2 个答案:

答案 0 :(得分:0)

我真的不太明白你的问题。但我认为你已经在mktime函数中反转了月和日。

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

cf:http://php.net/manual/en/function.mktime.php

答案 1 :(得分: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可能也很有用。