ファイルの最終更新日時(タイムスタンプ)を取得するには
PHP 2015/03/18
filemtime
関数を使えばUnixタイムスタンプ(1970年1月1日0時からの秒数)で取得できる。
// 1970年1月1日0時からの秒数で取得
filemtime('./hoge.txt');
filemtime
関数 | PHP Manual
http://php.net/manual/ja/function.filemtime.php
Python 2013/09/01
import os
# 1970年1月1日0時からの秒数で取得
print os.path.getmtime('./hoge.txt')
Ruby / JRuby 2015/04/13
# Timeオブジェクトで取得
p File.stat('./hoge.txt').mtime
# => 2013-11-22 11:08:01 +0900
# または
# Timeオブジェクトで取得
p File.mtime('./hoge.txt')
# => 2013-11-22 11:08:01 +0900
# 現在時刻との差を秒単位で取得
p DateTime.now.to_time - File.mtime("test.txt")
# => 54.419274511
# よくわからないがJRubyだと小数点以下3桁までしか表示されない
# タイムスタンプ取得精度のJVMでの制約かな
Perl 2015/08/21
例
my ($sec, $min, $hour, $mday, $mon, $year) = localtime((stat($self))[9]);
$year = $year + 1900;
$mon= $mon + 1;
printf("%04d-%02d-%02dT%02d:%02d:%02d\n", $year, $mon, $mday, $hour, $min, $sec);
# => 2015-08-21T12:35:02
ちなみに stat($self))[9]
は1970年1月1日0時0分からの秒数を得られる。
printf("%d\n", (stat($self))[9]);
# => 1440128102
sh (シェルスクリプト) 2015/04/10
もし2つのファイルのタイムスタンプを比較したいだけであれば簡単にできる。
if [ ファイル名1 -nt ファイル名2 ]; then
# ファイル1のほうが新しい場合の処理
...
fi
if [ ファイル名1 -ot ファイル名2 ]; then
# ファイル1のほうが古い場合
...
fi
if
の次の [
というのは test
というコマンドの別名で、見た目が他の言語にあるようなif
文の条件式を囲む括弧に似ている。
関連