0

理由はわかりませんが、特定のファイルが送信された時刻を表示する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;
}

上記の関数を使用してすべての情報をJSONに挿入するコードは次のとおりです

$dh = opendir($dir);
$files = array();
while (($file = readdir($dh)) !== false) {
    if ($file != '.' AND $file != '..' ) {
        if (filetype($dir . $file) == 'file') {
            $files[] = array(
                'id' => $domain.$dir.$file."?".Salt($file),
                'name' => $file,
                'size' => filesize($dir . $file). ' bytes',
                'date' => time_since(date("ymd Hi", filemtime($dir . $file))),
                'path' => $domain.$dir.$file,
                'thumb' => $domain.$dir."thumbnails/".$file
                #'thumb' => $dir . 'thumbs/' . $file
            );
        }            
    }
}
closedir($dh);

    $json = json_encode($files);

    $callback = $_GET['callback'];
    echo $callback.'('. $json . ')';
4

2 に答える 2

3

関数の文字列ではなくタイムスタンプを渡そうとしましたか?

'date' => time_since(time() - filemtime($dir . $file)),
于 2012-09-08T17:55:19.747 に答える
1

計算を行う前に、日付を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)),

動作するはずです。

于 2012-09-08T17:55:40.370 に答える