てきとうなメモ

本の感想とか技術メモとか

dateコマンド

unixtimeを求めるワンライナー - hnwの日記

PHPでなくてもいいのだったらdateコマンドが一番シンプルだと思う.

GNUだったらこんな感じ

$ date -d "2009/9/26 23" +%s
1253973600

BSDはちょっとややこしい.

$ date -v2009y -v9m -v26d -v23H -v0M -v0S +%s
1253973600

あと,GNUのdateは結構柔軟にparseしてくれるみたい

日付だけでもこれぐらい対応できるし

$ date -d "9/28" "+%Y/%m/%d %H:%M:%S"
2009/09/28 00:00:00
$ date -d "2009/9/28" "+%Y/%m/%d %H:%M:%S"
2009/09/28 00:00:00
$ date -d "9/28/2009" "+%Y/%m/%d %H:%M:%S"
2009/09/28 00:00:00
$ date -d "2009-9-28" "+%Y/%m/%d %H:%M:%S"
2009/09/28 00:00:00
$ date -d "28-Sep-2009" "+%Y/%m/%d %H:%M:%S"
2009/09/28 00:00:00
$ date -d "Sep 28" "+%Y/%m/%d %H:%M:%S"
2009/09/28 00:00:00
$ date -d "Sep 28, 2009" "+%Y/%m/%d %H:%M:%S"
2009/09/28 00:00:00
$ date -d "28 Sep" "+%Y/%m/%d %H:%M:%S"
2009/09/28 00:00:00
$ date -d "28 Sep 2009" "+%Y/%m/%d %H:%M:%S"
2009/09/28 00:00:00

英語っぽい表現も多少は大丈夫

$ date -d "now" "+%Y/%m/%d %H:%M:%S"
2009/09/28 22:56:55
$ date -d "yesterday" "+%Y/%m/%d %H:%M:%S"
2009/09/27 22:57:03
$ date -d "next Sunday" "+%Y/%m/%d %H:%M:%S"
2009/10/04 00:00:00
$ date -d "1 month ago" "+%Y/%m/%d %H:%M:%S"
2009/08/28 23:01:18
$ date -d "third day" "+%Y/%m/%d %H:%M:%S"
2009/10/01 23:02:13