The ${X#0}adalah untuk melucuti 0s terkemuka yang dalam beberapa kerang seperti bash, dashdan poshmenyebabkan masalah dengan 09(di mana shell mengeluh tentang hal itu menjadi bilangan oktal valid).
Saya lebih suka menggunakan sesuatu di sepanjang baris ini:IFS=: read -r today now <<< $(date +%F:%s); midnight=$(date -d "$today 0" +%s); echo $(( now - midnight ))
x-yuri
7
Tidak perlu untuk ekspresi aritmatika, cukup gunakan tanggal murni:
Jawaban:
Untuk menghindari kondisi balapan, masih dengan asumsi tanggal GNU:
Dengan
zsh
, Anda dapat melakukannya secara internal:Mudah dibawa, di zona waktu di mana tidak ada sakelar hemat siang hari, Anda bisa melakukan:
The
${X#0}
adalah untuk melucuti 0s terkemuka yang dalam beberapa kerang sepertibash
,dash
danposh
menyebabkan masalah dengan09
(di mana shell mengeluh tentang hal itu menjadi bilangan oktal valid).sumber
IFS=: read -r today now <<< $(date +%F:%s); midnight=$(date -d "$today 0" +%s); echo $(( now - midnight ))
Tidak perlu untuk ekspresi aritmatika, cukup gunakan tanggal murni:
sumber
brew install coreutils
dan gantidate
dengangdate
Berdasarkan bash, dapatkan waktu saat ini dalam milidetik sejak tengah malam , pada sistem GNU, dapat dilakukan seperti ini:
sumber
date -d @$seconds