Show yesterday's date:
$ date -d yesterday
$ date -d yesterday +%Y-%m-%d
Show the UNIX timestamp:
$ date +%s
$ date --utc +%s
$ date -d yesterday --utc +%s
Convert a date string to timestamp:
function date2stamp () {
date --utc --date "$1" +%s
}
Convert a timestamp to a date string:
function stamp2date () {
date --utc --date "1970-01-01 $1 sec" "+%Y-%m-%d %T"
}
Calculate a date difference:
function dateDiff () {
case $1 in
-s) sec=1; shift;;
-m) sec=60; shift;;
-h) sec=3600; shift;;
-d) sec=86400; shift;;
*) sec=86400;;
esac
dte1=$(date2stamp $1)
dte2=$(date2stamp $2)
diffSec=$((dte2-dte1))
if ((diffSec < 0)); then abs=-1; else abs=1; fi
echo $((diffSec/sec*abs))
}
Reference: