Neden php filemtime kullanarak benim son düzenleme dosya ismi olarak 31 Aralık 1969 alabilirim?

5 Cevap php

Ben php ve bu yüzden bana bu soruyu soran sakıncası yoksa lütfen acemi değilim ama gerçekten neden filemtime(filename.txt) benim son değiştirilme süresi olarak 31 kadar Kas 1969 bana verir gibi karışık alıyorum?

5 Cevap

Bu muhtemelen dosya bulunamadı demektir, ya:

  • mevcut değil, çünkü
  • veya currect dizinde değil çünkü
  • Eğer adını alıntı çünkü veya - ^ ^ vermedi

1 Ocak 1970 zaman "sıfır" bir tarihtir; ve filemtime döner false bir sorun var ...

Yani, 31 Aralık 1969 bölgeniz göre ... sıfır tarih / zaman, herhalde; Bu kod ile kendimi,:

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

Bu çıktıyı alıyorum:

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

yanlış dosya çünkü benim yerelin 01:00 de 'var, ve 1970-01-01 değil çünkü (I'm in France, at UTC+1 hour)


And note I also get a couple of notices and warnings :

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

Do you have any of those ?
If no : are error_reporting and/or display_errors enabled ?

I [(2)] aynı sorunu vardı ve {tarafından filemtime($physical_path.$filename) ve dosya boyutuna göre son değiştirilme tarihi dosyası $filename önce tam fiziksel yolunu birleştirerek dosya yolu mutlak yaparak bunu çözdü }.

1 Ocak 1970 00:00 Unix dönemin başlangıcıdır. Böylece, birlikte (muhtemelen) bir DST konu ile başarısız filemtime operasyon sonucu 0 bir zaman damgası, 31 Aralık 1969. Senin örneğin sadece sözde değil, eğer (örneğin, filemtime işlemi düzeltmek gerekir -kod dosya için tırnak ekleyerek):

filemtime ("filename.txt");

Filemtime dosyasını bulamıyorum eğer bu olsun.

Sen kullanamazsınız

$t = filemtime(filename.txt);

En azından, gibi bir şey kullanmak

$t = filemtime("filename.txt");