我知道如何将日期标记为过去的黄色:
perl -MTime::Piece -pe '
BEGIN {$today = localtime->ymd." ".localtime->hms}
@days = $_ =~ /<td>([0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2})<\/td>/g;
for $d (@days) {
$_ =~ s!$d!<font style=BACKGROUND-COLOR:yellow>$d</font>!g if $d lt $today;
}' foo.html > foo-TMP.html
mv foo-TMP.html foo.html
问题但是,如何仅标记超过5天的日期?
示例:
It's: 2014.07.20 15:00
因此,以下示例日期将标记为黄色:
bla-bla random string here<td>2014.05.21 16:32</td>bla-bla random string here
bla-bla random string here<td>2014.07.15 14:59</td>bla-bla random string here
以下内容应该单独列出:
bla-bla random string here<td>2014.07.15 15:01</td>bla-bla random string here
bla-bla random string here<td>2014.07.18 19:14</td>bla-bla random string here
答案 0 :(得分:6)
根据Time::Piece docs,&#34;在perlfunc中记录的方式使用localtime / gmtime仍将返回您期望的内容&#34;,而the perlfunc docs显示localtime()
需要一个参数,自纪元以来的秒数,默认值(如果你不提供一个)是time()
的返回值。
五天是432000秒。如果更改初始参考点:
BEGIN {
$then = localtime(time() - 432000);
$day = $then->ymd." ".$then->hms
}
使用$day
代替$today
,你应该得到你想要的东西。