0

I need help. I made a shell script that you pass a date earlier than 3 days in YYYYMMDD format and tell me if it is correct or not. My question is. Can i subtract the date command 3 days? thanks.

4

3 回答 3

2

你可以测试:

 DATE="20120803"
 date -d @$(( `date -d "$DATE" +%s` - (3*24*60*60) ))
于 2012-08-03T10:16:38.423 回答
1

对于花哨的解决方案:

INPUT="20120803"
INPUT_SECONDS=$(date -d "$INPUT" +%s)
THREEDAYSAGO_SECONDS=$(date -d "3 days ago" "+%s")

if [ $INPUT_SECONDS -lt $THREEDAYSAGO_SECONDS ]; then
    echo "too early :("
fi
于 2012-08-03T11:00:58.900 回答
0

尽管您可以使用 date 命令来执行此操作(请参阅Guillame 的出色答案),但可能值得考虑使用 Perl 等脚本语言来更有效地完成更复杂的事情。

例如,使用Perl和模块查看这个 SO答案:DateTime.pm

use DateTime;
my $date = DateTime->now;
$date->subtract(days => 3);
print $date->ymd;
于 2012-08-03T10:20:37.160 回答