请考虑此代码
var_export ($dates);
while (list($key, $date) = each($dates))
{
    echo("current = ".current($dates));
    echo("key = " . key($dates));
}
结果是
Array
(
    [1359928800] => 1359928800
)
current =
key = 
我希望它应该返回1359928800,我错在哪里?
请考虑此代码
var_export ($dates);
while (list($key, $date) = each($dates))
{
    echo("current = ".current($dates));
    echo("key = " . key($dates));
}
结果是
Array
(
    [1359928800] => 1359928800
)
current =
key = 
我希望它应该返回1359928800,我错在哪里?
原因是each指针已经前进了。
该文档指出:
从数组中返回当前键值对并推进数组游标。
所以循环内部current指的是下一个元素。在您的情况下,没有下一个元素,所以它是false. 您应该使用$keyand$date或更好地使用foreach,就像已经建议的那样。
为什么不使用$keyand $date?
while (list($key, $date) = each($dates))
{
    echo("current = ".$date); // 1359928800
    echo("key = " . $key); // 1359928800
}