在perl中,如果日期超过5天,如何标记日期?
我知道如何将过去的日期标记为黄色:在perl中,如果日期超过5天,如何标记日期?,perl,Perl,我知道如何将过去的日期标记为黄色: 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=BA
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
因此,以下示例日期将标记为黄色:
bla bla随机字符串此处2014.05.21 16:32bla-bla随机字符串此处
bla-bla随机字符串此处2014.07.15 14:59 bla-bla随机字符串此处
以下几点应该放在一边:
bla bla随机字符串此处2014.07.15 15:01bla-bla随机字符串此处
bla bla随机字符串此处2014.07.18 19:14bla-bla随机字符串此处
根据“以perlfunc中记录的方式使用localtime/gmtime仍将返回您期望的结果”,并揭示localtime()
接受一个参数,自纪元起的秒数,默认值(如果您不提供)是time()
的返回值
五天是432000秒。如果更改初始参考点:
BEGIN {
$then = localtime(time() - 432000);
$day = $then->ymd." ".$then->hms
}
用
$day
代替$today
,你应该得到你想要的。如果你先用Time::Seconds
(它是Time::Piece
的配套模块),你可以用一天*5
代替神奇的432000
。此外,您不必调用time
,因为time::Piece
重载整数运算,您只需编写my$then=localtime()-ONE_DAY*5
请使用类和CSS文件标记相关日期,而不是将CSS直接嵌入HTML。