以下のファイルの作成日時を取得したいのですが、

-rw-r--r-- 1 ****** *** 0 Sep 19 14:29 1111111111_5555555_10999
-rw-r--r-- 1 ****** *** 0 Sep 19 14:29 2222222222_6666666_10998
-rw-r--r-- 1 ****** *** 0 Sep 19 13:32 3333333333_5555555_10999

PHPで、以下のようにすると、

$file_name_csv = 1111111111_5555555_10999;
echo "$file_name_csv last modified: " . date ("F d Y H:i:s.", filemtime($file_name_csv)) ."\n";

実行結果:
1111111111_5555555_10999 last modified: January 01 1970 09:00:00.

となってしまいます。
これをファイル更新の時間、Sep 19 14:29という値を代入することは
可能なのでしょうか?

回答の条件
  • 1人5回まで
  • 登録:2006/09/19 16:10:41
  • 終了:2006/09/26 14:02:13

回答(5件)

id:kurukuru-neko No.1

kurukuru-neko回答回数1844ベストアンサー獲得回数1552006/09/19 16:41:30

ポイント60pt

date

http://jp.php.net/manual/ja/function.date.php

表示したいのが

Sep 19 14:29の場合

M d H:s

※:lsの結果だと思いますが、システムにより表示される

内容は違います。 去年のファイルだと年が入ったりします。

id:zayin No.2

zayin回答回数28ベストアンサー獲得回数22006/09/19 17:44:58

ポイント10pt

例えば、存在しないファイル名をfilemtime関数に渡すと戻り値がfalseとなり、結果、質問文の場合だとdate関数はJanuary 01 1970 09:00:00を返します。

filemtime関数に渡している$file_name_csvには正しいファイル名が代入されていますか?(例えば、phpスクリプトとデータファイルは同じディレクトリにありますか? また質問文のスクリプト1行目の右辺がクォートで囲まれていませんが、実際のスクリプトではちゃんと囲まれていますか?)

id:kunkichi No.3

kunkichi回答回数20ベストアンサー獲得回数02006/09/19 22:00:08

ポイント10pt

awkじゃだめですか?(笑)

$ ls -l | awk '{ print $6, $7, $8 }'

id:takagimasahiro No.4

m-takagi回答回数23ベストアンサー獲得回数22006/09/20 04:21:57

ポイント10pt

$file_name_csv = 1111111111_5555555_10999;

echo "$file_name_csv last modified: " . date ("F d Y H:i:s.", filemtime($file_name_csv)) ."\n";

とりあえず、

$file_name_csv = 1111111111_5555555_10999;
if (file_exists($file_name_csv)) {
    echo "$file_name_csv last modified: " . date ("F d Y H:i:s.", filemtime($file_name_csv)) ."\n";
} else {
    echo "File not found.\n";
}

のようにして試してみることをお勧めします。

ところで、

$file_name_csv = 1111111111_5555555_10999;

ほんとにこのコードで動きましたか?

私の環境では

$file_name_csv = "1111111111_5555555_10999";

としないと Parse Error になったんですけど……

id:tobeoscontinue No.5

tobeoscontinue回答回数214ベストアンサー獲得回数542006/09/23 14:38:38

ポイント10pt

実行結果からさっしてパスが通っていないと思います。

PHPのファイルと1111111111_5555555_10999などを同じディレクトリーで

実行してみて下さい。

>>ファイルの作成日時を取得したいのですが、

ファイルの作成日時はfilectimeだと思うのですがPHP マニュアルによれば

『いくつかのUNIXでは、ファイルのctimeはファイルの作成時間として参照 されます。これは間違っています。多くのUNIXファイルシステムでは UNIXファイルの作成時間は存在しません。』

ということらしいです。

ファイル更新の時間を代入するのでは

bool touch ( string filename [, int time [, int atime]] )

が使えます。

がパーミッションが644なのでこの状態では更新できないと思いますが

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません