-2

我有以下代码:

$value = '2012-03-05';
$parts = explode('-',$value);
$value = mktime(0,0,0,$parts[1],$parts[0],$parts[2]);

// output of $value is 2012

不应该mktime()返回类似于time()?

我的代码有什么问题?

4

3 回答 3

5

使用该strtotime函数将表示时间的字符串转换为 unix 时间戳数

$value = "2012-05-25";
$time = strtotime($value." 00:00:00");
//$time = strtotime($value); will do the work as well
于 2012-05-11T18:47:50.713 回答
1

那是对mktime的错误使用。这里的日子在一年之前而不是之后。用这个,

mktime(0,0,0,$parts[1],$parts[2],$parts[0]);
于 2012-05-11T18:49:47.287 回答
0

是的,mktime() 应该像 time() 一样返回一个 unix 时间戳。如果不是这种情况,您发布的代码不能正确代表您正在执行的代码。

这是一个演示 http://codepad.org/7RNxk0Oz

于 2012-05-11T18:49:24.620 回答