Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php函数未返回正确的文件日期_Php - Fatal编程技术网

php函数未返回正确的文件日期

php函数未返回正确的文件日期,php,Php,不知道为什么,但我无法使用PHP函数来显示提交某个文件的时间。前任;大约1年前或2秒前。然而,在我的例子中,它停留在“大约1天前”,即使文件是在几秒钟前提交的 以下是自提交后应获得时间的函数 function time_since($since) { $chunks = array( array(60 * 60 * 24 * 365 , 'year'), array(60 * 60 * 24 * 30 , 'month'), array(6

不知道为什么,但我无法使用PHP函数来显示提交某个文件的时间。前任;大约1年前或2秒前。然而,在我的例子中,它停留在“大约1天前”,即使文件是在几秒钟前提交的

以下是自提交后应获得时间的函数

function time_since($since) {
    $chunks = array(
        array(60 * 60 * 24 * 365 , 'year'),
        array(60 * 60 * 24 * 30 , 'month'),
        array(60 * 60 * 24 * 7, 'week'),
        array(60 * 60 * 24 , 'day'),
        array(60 * 60 , 'hour'),
        array(60 , 'minute'),
        array(1 , 'second')
    );

    for ($i = 0, $j = count($chunks); $i < $j; $i++) {
        $seconds = $chunks[$i][0];
        $name = $chunks[$i][1];
        if (($count = floor($since / $seconds)) != 0) {
            break;
        }
    }

    $print = ($count == 1) ? '1 '.$name : "$count {$name}s";
    return $print;
}

是否尝试为函数传递时间戳而不是字符串:

'date' => time_since(time() - filemtime($dir . $file)),

是否尝试为函数传递时间戳而不是字符串:

'date' => time_since(time() - filemtime($dir . $file)),

在进行计算之前,应该将日期转换为unix时间戳

            'date' => time_since(date("ymd Hi", filemtime($dir . $file))),
应该是:

            'date' => time_since(strtotime(date("Y-m-d H:i:00", filemtime($dir . $file)))),
更新:

@Arthur Halma给出了正确的答案:filemtime返回一个时间戳

            'date' => time_since(time() - filemtime($dir . $file)),

应该有效。

在进行计算之前,您应该将日期转换为unix时间戳

            'date' => time_since(date("ymd Hi", filemtime($dir . $file))),
应该是:

            'date' => time_since(strtotime(date("Y-m-d H:i:00", filemtime($dir . $file)))),
更新:

@Arthur Halma给出了正确的答案:filemtime返回一个时间戳

            'date' => time_since(time() - filemtime($dir . $file)),
应该能行。

非常好:)谢谢你这么多工作非常好:)谢谢你这么多