人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

●質問者: pipi_n
●カテゴリ:ウェブ制作
✍キーワード:2006-03-29 28 Perl データ フォーマット
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● ToMmY
●10ポイント

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

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

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

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

◎質問者からの返答

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

2006-03-29 10:28:25

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


2 ● tadashi0805
●60ポイント

お使いのマシンは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

◎質問者からの返答

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

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

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

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ