计算 1970 年 1 月 1 日以来的天数

nit*_*ins 14 linux openldap bash date

您如何计算自 1970 年 1 月 1 日以来的天数?这是用于更新OpenLDAP 上的shadowLastChange属性。

有没有办法使用 linux date命令来做到这一点?

Dav*_*ger 25

ring0 比我快了几秒钟,但完整的命令是:

echo $(($(date --utc --date "$1" +%s)/86400))
Run Code Online (Sandbox Code Playgroud)

这是 UTC 时间。结果:

root@hostname:~# echo $((`date --utc --date "$1" +%s`/86400))
14984
Run Code Online (Sandbox Code Playgroud)

一个快速检查与WolframAlpha的表演,这是正确的值。


小智 12

我认为这是最简单的方法:

expr $(date +%s) / 86400
Run Code Online (Sandbox Code Playgroud)

  • 为什么这被否决了?这是最好、最短、最简单的答案 (2认同)

Bre*_*bad 9

date命令可以为您提供自1970-01-01 00:00:00 UTC.

  date +"%s"
Run Code Online (Sandbox Code Playgroud)

您可以将结果除以3600*24得到天数 (UTC)。

例如在 Bash 中

  x=`date +"%s"` ; echo $(( $x / 3600 / 24 ))
Run Code Online (Sandbox Code Playgroud)

以显示天数。