我是PHP的新手,所以請不要介意我問這個問題,但我真的很困惑,爲什麼filemtime(filename.txt)
給我作爲1969年12月31日作爲我最後修改時間?爲什麼我在1969年12月31日作爲我最後修改的文件名在php中使用filemtime?
2
A
回答
8
這可能意味着你的文件沒有被發現,或者:
- ,因爲它不存在
- 或者因爲它不是在當期的目錄
- 或者因爲你沒有引用它的名字 - y ou沒有^^
1970年1月1日是時間「零」的日期; filemtime
返回false
當出現問題時...
因此,1969年12月31日是零的日期/時間...根據您的語言環境,我想;我本人,與此代碼:
$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)
假的,因爲該文件犯規」的存在,並在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
?
1
1970年1月1日0:00是Unix時代的開始。因此,由於filemtime操作失敗導致的0的時間戳與(可能)DST問題一起,是1969年12月31日。例如,您需要修復您的filemtime操作(如果您的示例不只是僞-code)加入引號的文件名:
filemtime ("filename.txt");
0
如果filemtime無法找到該文件,則會得到該信息。
0
不能使用
$t = filemtime(filename.txt);
在最低限度,使用類似
$t = filemtime("filename.txt");
2
我有同樣的問題,並解決它通過將文件絕對路徑由之前串聯完整的物理路徑$filename
作爲文件最後修改日期filemtime($physical_path.$filename)
和文件大小filesize($physical_path.$file)
。
相關問題
- 1. 日期顯示1969年12月31日
- 2. Moment.js返回「1969年12月31日,」
- 3. 的Drupal查看輸出wronf日 - 1969年12月31日
- 4. Javascript日期對象返回1969年12月31日
- 5. 日期不正確,顯示1969年12月31日
- 6. Breezejs日期始終1969年12月31日
- 7. PHP日期 - 空返回1969年12月
- 8. 於1969年12月31日發生了什麼事下午7:00
- 9. 顯示日期31-12-1969
- 10. PHP filemtime()返回1969-12-31 - 找不到問題
- 11. mktime強制日期到1969年12月
- 12. 使用的strftime爲12月31日表示,明年
- 13. date()顯示1969年12月
- 14. 防止PHP日期()從默認爲12/31/1969
- 15. 熊貓返回12月31日作爲最大日期,而不是第二年
- 16. php:strtotime(「2004年12月31日+6月」));不返回六月的最後一天
- 17. Knockout.js渲染日期時間12/31/1969
- 18. 文件上次更改時間()返回週三12月31日19:00:00 EST 1969年
- 19. JS中的日期值結果在12/31/1969 4:00 PM
- 20. 新創建的S3目錄有作爲1969-12-31時間戳
- 21. 12月31日UIDatePicker問題
- 22. WAMP SQLServer的PHP 31年6月5日
- 23. 爲什麼我不能在php中更改輸入文件名?
- 24. 我如何得到以下格式的一天後,月,日,年(3月31日)
- 25. 在Rails中,我如何顯示日期,如2009年12月1日星期一,2009年12月1日
- 26. 更改日期格式,從12年12月12日至2012年12月12日iOS6的
- 27. 只有SQL SELECT中的某些日期被設置爲「0」或「1969-12-31」 - UNIX_TIMESTAMP
- 28. 的Struts 2的DateTimePicker默認爲31/12/1969
- 29. NSDateFormatter提前一年預約12/30/2012和2012年12月31日
- 30. 爲什麼此日期功能只能在2016年12月30日前運行?
@Pascal:謝謝帕斯卡的詳細解答。我得到的警告提及stat失敗的文件名和我的error_reporting已啓用 不知道爲什麼filemtime沒有得到我的文件,因爲如果我回顯它比我得到的文件名,但錯誤修改時間爲12月31日,仍然想知道爲什麼發生這種情況辦法。 – Rachel 2009-12-05 22:08:06