Почему я получаю 31 декабря 1969 года последнее измененное имя файла, используя filemtime в php? - PullRequest
2 голосов
/ 06 декабря 2009

Я новичок в php, и, пожалуйста, не возражайте, если я задам этот вопрос, но я действительно запутался, почему filemtime(filename.txt) дает мне 31 декабря 1969 года в качестве моего последнего измененного времени?

Ответы [ 5 ]

8 голосов
/ 06 декабря 2009

Это, вероятно, означает, что ваш файл не был найден, либо:

  • потому что его не существует
  • или потому что он не находится в правильном каталоге
  • или потому что вы не указали его имя - вы не ^^

1 января 1970 года - дата времени «ноль»; и filemtime возвращает false при возникновении проблемы ...

Итак, 31 декабря 1969 года - это дата / время нуля ... Полагаю, в соответствии с вашим языком; Я сам с этим кодом:

$filemtime = filemtime(filename.txt);
$formated = date('Y-m-d H:i:s', $filemtime);
var_dump($filemtime, $formated);

получить этот вывод:

boolean false
string '1970-01-01 01:00:00' (length=19)

false, поскольку файл не существует, и 1970-01-01 в 01:00 из-за моей локали (я во Франции, в UTC + 1 час)


И обратите внимание, я также получаю пару уведомлений и предупреждений:

  • Notice: Use of undefined constant filename - assumed 'filename'
  • Notice: Use of undefined constant txt - assumed 'txt'
  • Warning: filemtime() [function.filemtime]: stat failed for filenametxt

У вас есть такие?
Если нет: error_reporting и / или display_errors включены?

2 голосов
/ 02 ноября 2011

У меня была та же проблема, и я решил ее, указав абсолютный путь к файлу, объединив полный физический путь до $filename в качестве даты последнего изменения файла на filemtime($physical_path.$filename) и размера файла на filesize($physical_path.$file).

1 голос
/ 06 декабря 2009

1 января 1970 г. 0:00 - начало эпохи Unix. Таким образом, отметка времени 0, которая является результатом неудачной операции filemtime, вместе с (возможно) проблемой DST, составляет 31 декабря 1969 года. Например, вам нужно исправить операцию filemtime (если ваш пример не просто псевдо -код) добавив к имени файла кавычки:

filemtime ("filename.txt");
0 голосов
/ 06 декабря 2009

Вы не можете использовать

$t = filemtime(filename.txt);

Как минимум, используйте что-то вроде

$t = filemtime("filename.txt");
0 голосов
/ 06 декабря 2009

Вы получаете это, если filemtime не может найти файл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...