0

ディレクトリ内のファイルの日付と現在の日付の違いを判断しようとしています.2つの方法で計算しようとしました:

 $fileUnixTimeDate = filemtime($file);
 $fileFormattedDate = date('m/d/y',filemtime($file));

 $todayUnixTimeDate =  time();
 $todayFormattedDate = date('m/d/y',time());

 $unixDifference = $todayUnixTimeDate - $fileUnixTimeDate;
 $formattedDifference =  $todayFormattedDate - $fileFormattedDate;

これは、ディレクトリ内の 2 つのファイルの結果です。

ここに画像の説明を入力

4

4 に答える 4

3

PHP のDateTimeクラスを使用 - 2 つの日付をオブジェクトとしてインスタンス化し、それらDateTimediff間で実行します。最後に、日数の値を出力しますformatdiff

http://php.net/DateTimeを参照してください。

編集: 例:

$dt1 = new DateTime(date('Y-m-d H:i:s', filemtime($file)));
$dt2 = new DateTime(); // this would be the "now" datetime

$diff = $dt1->diff($dt2);

echo $diff->format('%R%a days');
于 2013-01-23T16:46:13.063 に答える
2

日数の差を取得しようとしているとしか思えません。

$fileUnixTimeDate = filemtime($file);
$todayUnixTimeDate =  time();

$unixDifference = $todayUnixTimeDate - $fileUnixTimeDate;
$daysDifference = $unixDifference/86400;

注: 1 日は 86400 秒なので、86400 です。

$daysDifference日数が含まれます。

于 2013-01-23T16:45:10.923 に答える
0

クラスを使用するDateTimeと、日付の操作が非常に簡単になります。

// Pretend this is from "filemtime()"
$time = strtotime('9 days ago');

// Create a DateTime object using the file's creation time
// Note: Unix timestamps need to be prefixed with "@"
$filetime = new \DateTime('@'.$time);

// The datetime right now, for comparison
$now = new \DateTime('now');

// Get the difference between the two times
$diff = $filetime->diff($now);

// And echo out the day difference
echo "The file was created {$diff->days} days ago.";

$diff変数には多くの優れた機能が含まれています。

object(DateInterval)[3]
    public 'y' => int 0
    public 'm' => int 0
    public 'd' => int 9
    public 'h' => int 0
    public 'i' => int 0
    public 's' => int 0
    public 'invert' => int 0
    public 'days' => int 9
于 2013-01-23T16:58:44.183 に答える
0

すでに行っている UNIX 時間の計算は素晴らしいスタートです。

$fileUnixTimeDate = filemtime($file);
$todayUnixTimeDate =  time();
$unixDifference = $todayUnixTimeDate - $fileUnixTimeDate;

指定された結果 (7389045 & 7216242) を使用して、それらを読み取り可能な形式に変換する必要があります。たとえば、7389045 ~= 85.5 日です。7216242 ~= 83.5 日

echo "Hours difference = ".floor((unixDifference )/3600) . "<br>";
echo "Minutes difference = ".floor((unixDifference )/60) . "<br>";
echo "Seconds difference = " .(unixDifference ). "<br>";
echo "Days difference = ".floor((unixDifference )/86400) . "<br>";

それを試して、どのような結果が得られるかを確認してください。

この質問を参照してください: Finding days between 2 unix timestamps in php

Unix Time の詳細: http://en.wikipedia.org/wiki/Unix_time

于 2013-01-23T16:45:41.440 に答える