【问题标题】:php mktime from variable来自变量的 php mktime
【发布时间】:2016-02-06 14:54:24
【问题描述】:

我有一个这样的变量:

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

$event_start_date_hour_ISOecho 结果是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。

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

【问题讨论】:

  • $event_start_day 的值是多少?

标签: php date mktime


【解决方案1】:

我不确定是否理解您的问题。但我认为你在 mktime 函数中颠倒了月份和日期。

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

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

【讨论】:

  • 不客气。请不要忘记为答案投票并标记为已解决
【解决方案2】:

看起来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 也可能有用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-12-04
    • 2012-02-10
    • 2013-05-16
    • 1970-01-01
    • 1970-01-01
    • 2013-02-06
    • 2017-09-09
    • 1970-01-01
    相关资源
    最近更新 更多