perlでlocaltime関数を使い、得たデータを編集して

2006-03-29 10:28:25
のフォーマットでデータを保存していたのですが、使い勝手が悪くlocaltime関数で取得する秒数(1143513441こんな感じ)になおしたいのですがなにか良い方法はないでしょうか?
1件2件なら手作業でいいのですが数百あるので自動化できればいいなぁと思っています・・・

回答の条件
  • 1人3回まで
  • 登録:2006/03/30 18:18:58
  • 終了:2006/03/30 19:42:35

回答(2件)

id:ToMmY No.1

ToMmY回答回数656ベストアンサー獲得回数192006/03/30 18:58:05

ポイント10pt

http://www.site-cooler.com/cgi-bin/kansuu.cgi?lang=perl&meth...

timeという関数(?)があるようです。localtimeの引数のtimeはこれのことらしいです。

たぶん単体でも用いられます。

変数にそのまま代入して、保存してしまえばよいのではないでしょうか。

id:pipi_n

これだと1970年 1月1日からの秒数取得ですよね?

2006-03-29 10:28:25

を秒数にしたいので逆ですね。

2006/03/30 19:29:13
id:tadashi0805 No.2

tadashi0805回答回数287ベストアンサー獲得回数292006/03/30 18:59:09

ポイント60pt

お使いのマシンはLinuxでしょうか?

LinuxならPHPが使えるはずなので、PHPのstrtotime関数でタイムスタンプ値に変換できます。

$ php -r 'echo strtotime("2006-03-28 18:00:00")."\n";'

1143536400

ファイルに1行ずつ日付時刻の値があるのなら、ファイルをオープンして1行ずつ読み込んで変換して表示するPHPのスクリプトを書けば、一括で変換できます。手を抜いたスクリプトなので、最後の実行結果にゴミの行が出ますが、他の行は合っているはずです。

$ cat aaa

2006-03-29 10:28:25

2006-03-29 10:28:26

2006-03-29 10:28:27

2006-03-29 10:28:28

$ cat aaa.php

$fp = @fopen("aaa", "r");

while(!feof($fp)) {

echo strtotime(fgets($fp, 32))."\n";

}

fclose($fp);

?>

$ php aaa.php

1143595705

1143595706

1143595707

1143595708

1143644400

id:pipi_n

PHPでそんな関数があったんですか!

ソースまでありがとうございました!

テストで動かしてみたらばっちり希望通りの回答が帰ってきました。

PHPはあまり得意ではないのですがこれでがんばってみようかと思います。

2006/03/30 19:41:32
  • id:Iwa
    Perlだったら、Time::Localモジュールを使ってtimelocal関数(そのまんまlocaltimeの逆)でできます。

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

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

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

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