变量和mktime()不起作用

时间:2012-05-05 19:04:50

标签: php variables mktime

我有以下代码:

$search = '3,39,49,5,5,2012';
$search = mktime($search);
echo $search;

只输出当前时间戳,而不是指定日期的时间戳。但是,如果我执行以下操作:

$search = mktime(3,39,49,5,5,2012);
echo $search;

它会输出正确的时间戳,1336203589。有什么想法吗?

3 个答案:

答案 0 :(得分:4)

试试这个:

$search = '3,39,49,5,5,2012';
$search = call_user_func_array('mktime',explode(',', $search));
echo $search;

演示:http://codepad.viper-7.com/lxTJbO

答案 1 :(得分:1)

mktime需要一系列时间值,因此您只需将数组与explodepreg_split分开即可

$search = '3,39,49,5,5,2012';
$t = explode(',', $search);
$search = mktime($t[0], $t[1], $t[2], $t[3], $t[4], $t[5]);

答案 2 :(得分:1)

这是因为您需要指定mktime的整数列表。您正在向string传递一个(为了您的理解是一个列表,但对于php解释器则不然)。您需要将其转换为这样的列表:

$search = '3,39,49,5,5,2012';
$search = mktime(explode(',', $search));
echo $search;