Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在LinuxShell脚本中计算date-N?_Linux_Date - Fatal编程技术网

如何在LinuxShell脚本中计算date-N?

如何在LinuxShell脚本中计算date-N?,linux,date,Linux,Date,我想知道如何计算date-n,其中date是系统当前日期,n是我要加或减的天数 我可以得到昨天的日期,但不知道如何增加或减少天数以获得所需的日期: date_dir=`date +%Y-%m-%d -d yesterday` echo "$date_dir" 谢谢您可以为-d选项提供参数'-N天': $ date +%Y-%m-%d -d '-42 days' # This would subtract 42 days from the current date 2013-10-30

我想知道如何计算date-n,其中date是系统当前日期,n是我要加或减的天数

我可以得到昨天的日期,但不知道如何增加或减少天数以获得所需的日期:

date_dir=`date +%Y-%m-%d -d yesterday`
echo "$date_dir"

谢谢您可以为
-d
选项提供参数
'-N天'

$ date +%Y-%m-%d -d '-42 days'     # This would subtract 42 days from the current date
2013-10-30
$ date +%Y-%m-%d -d '+42 days'     # This would add 42 days to the current date
2014-01-22
并将结果分配给变量:

$ date_dir=$(date +%Y-%m-%d -d '-42 days')
$ echo $date_dir 
2013-10-30

您可以向
-d
选项提供参数
'-N天'

$ date +%Y-%m-%d -d '-42 days'     # This would subtract 42 days from the current date
2013-10-30
$ date +%Y-%m-%d -d '+42 days'     # This would add 42 days to the current date
2014-01-22
并将结果分配给变量:

$ date_dir=$(date +%Y-%m-%d -d '-42 days')
$ echo $date_dir 
2013-10-30
你可以增加/减少你需要的天数。只要记住它是在几秒钟内

从手册页:

%自1970-01-01 00:00:00 UTC以来的秒数

将历元(1970-01-01 UTC)后的秒数转换为日期

$date--date='@2147483647'

编辑:devNull提供了更好的答案

你可以增加/减少你需要的天数。只要记住它是在几秒钟内

从手册页:

%自1970-01-01 00:00:00 UTC以来的秒数

将历元(1970-01-01 UTC)后的秒数转换为日期

$date--date='@2147483647'


编辑:devNull提供了更好的答案

您也可以在“42天前”完成日期+%Y-%m-%d-d。所有这些示例都与GNU实现的date
无关。在BSD和UNIX中,这通常不起作用,但有时GNU版本也安装为
gdate`.@janos感谢您的启发。由于问题被标记为
linux
,因此可以安全地假设使用了
GNU-date
。总的来说,这只是一个额外的问题。在我生命中的某个时刻,当我期望我在Linux中编写的可靠脚本能够在Solaris中工作时,我感到非常沮丧。从那以后,我知道的更多了,并且试着意识到这些细微的差别。你也可以做
date+%Y-%m-%d-d'42天前。所有这些示例都与GNU实现的
date
无关。在BSD和UNIX中,这通常不起作用,但有时GNU版本也安装为
gdate`.@janos感谢您的启发。由于问题被标记为
linux
,因此可以安全地假设使用了
GNU-date
。总的来说,这只是一个额外的问题。在我生命中的某个时刻,当我期望我在Linux中编写的可靠脚本能够在Solaris中工作时,我感到非常沮丧。从那以后,我知道的更多了,并努力意识到其中的细微差别。