0

我有以下代码:

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

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

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

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

4

3 回答 3

4

尝试这个:

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

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

于 2012-05-05T19:13:26.490 回答
1

mktime 需要一个时间值数组,因此您只需使用explodeoder拆分数组preg_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]);
于 2012-05-05T19:09:09.543 回答
1

那是因为您需要指定一个整数列表到mktime. 您将 a 传递string给它(您的理解是一个列表,但对于 php 解释器而言并非如此)。您需要将其转换为这样的列表:

$search = '3,39,49,5,5,2012';
$search = mktime(explode(',', $search));
echo $search;
于 2012-05-05T19:09:21.633 回答