-PR-
回答 受付中

Perl 日付処理 逆

  • 困ってます
  • 質問No.9405299
  • 閲覧数42
  • ありがとう数0
  • 気になる数0
  • 回答数1

お礼率 62% (10/16)

Perl 日付処理仕組み
$Tm = "1488992820";
my ($Nsec, $Nmin, $Nhour, $Ndate, $Nmon, $Nyear, $Nday) = localtime($Tm);
$Nyear += 1900;
$Nmon += 1;
print "$Nyear/$Nmon/$Ndate";

これで結果は
2017/3/9

となりますが、
逆に

2017
3

上記の年月で
逆に戻したいのですが、
どのようにするのでしょうか?
1488992820のよう細かい日付でなくていいのですが
2017年3月内のlocationTimeに戻したいのです。

説明が下手くそなので、
実際やりたいこと・・・
ログファイル1列目に
1488992820
のように、ログ時間があり、
それをまず
月間別に分け
上記ですと
2017年3月というアンカーを作り
<a href="test.cgi?Y=2017&M=3">2017年3月</a>

このような感じがページに並び、
これを選択すると

ページでそれに該当する行だけ配列に入れ
表示させるということです。

ブログ記事にあるアーカイブ、月間別
を作りたいです

※ログファイルに、予め
2017,3
といったように、書き込むのはなしです。
これは最終手段・・・

無理やりではありますが
value="2017,3,"
my $a = 0;
my @DATA = grep { $DATA[$_] =~ /,2017,3,/ } 0..$#DATA;
$a = scalar @DATA ;
一応実行はできております。
通報する
  • 回答数1

回答 (全1件)

  • 回答No.1
レベル10

ベストアンサー率 66% (103/155)

POSIXモジュールのmktime関数を使います。

perl -e 'use POSIX qw(mktime); $time_t = mktime( 0, 7, 2, 9, 3 - 1, 2017 - 1900 );print "$time_t\n"'
1488992820

perl -e 'use POSIX qw(mktime); $time_t = mktime( 0, 0, 0, 9, 3 - 1, 2017 - 1900 );print "$time_t\n"'
1488985200


  • 回答数1
このQ&Aで解決しましたか?
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-

特集


開業・独立という夢を持つ人へ向けた情報満載!

ピックアップ

ページ先頭へ