0

ftp 上のフォルダーからプルされたファイルからエコーアウトしているときに、タイムスタンプから正しい日付を取得するのに問題があります。

$it = new DirectoryIterator("blahblahblah/news");
$files = array();
foreach($it as $file) {
if (!$it->isDot()) {
    $files[] = array($file->getMTime(), $file->getFilename());
}}

rsort($files);
 foreach ($files as $f) {
     $mil = $f[0];
     $seconds = $mil / 1000;
     $seconds = round($seconds);
     $theDate = date("d/m/Y", $seconds);
echo "<img src=\"images/content/social-icons/article.png\" width=\"18\" height=\"19\" alt=\"article\">" . $theDate . "-  <a  style=\"background-color:transparent;\" href=\"news/$f[1]\">" . $f[1] . "</a>";
echo "<br>";

 }

ファイルをタイムスタンプでソートし、ファイル名とファイルへのリンクを使用してエコーアウトしようとしています。問題は、date() が 1970 年 1 月 16 日に出てくることです... タイムスタンプをオンライン コンバーターに入れましたが、それらは正確なので、混乱しています。タイムスタンプも丸めましたが、それも役に立ちません。

4

1 に答える 1

4

getMTim​​eは Unix タイムスタンプを返します。

Unix タイムスタンプは通常、Unix エポックからの秒数です (ミリ秒数ではありません)。 ここ を参照してください

したがって、これ$seconds = $mil / 1000;はエラーの原因です。

設定するだけ$seconds = $f[0]で準備完了です。

修正されたコード:

$it = new DirectoryIterator("blahblahblah/news");
$files = array();
foreach($it as $file) {
if (!$it->isDot()) {
    $files[] = array($file->getMTime(), $file->getFilename());
}}

rsort($files);
 foreach ($files as $f) {
     $seconds = $f[0];
     $seconds = round($seconds);
     $theDate = date("d/m/Y", $seconds);
echo "<img src=\"images/content/social-icons/article.png\" width=\"18\" height=\"19\" alt=\"article\">" . $theDate . "-  <a  style=\"background-color:transparent;\" href=\"news/$f[1]\">" . $f[1] . "</a>";
echo "<br>";

 }
于 2012-09-11T02:38:40.500 に答える