« || »

 JavaScript UNIXタイムスタンプと日時の相互変換

2020. 8. 4 (火)

以前Qiitaに投稿したもののJavaScript版です。

もちろんDateオブジェクトを利用すれば面倒な計算をすることなく相互に変換できますが、あえて自前で計算したい場合はどんな方法があるか、という例です。

UTCとの時差取得と引数省略時のデフォルト値(現在日時)取得にのみDateオブジェクトを使用していますが、それ以外のUNIX時間と日時の変換はDateオブジェクトのパーサーに頼らず自前で算出しています。

date2time()
渡した日付からUNIXタイムスタンプを返します。
引数: 年,月,日,時,分,秒,時差反映
引数を省略した場合は現在日時を使います。
時差反映は0が無し、1が有りでデフォルトは1です。

time2date()
渡したUNIXタイムスタンプから日付をオブジェクトで返します。
引数: UNIXタイムスタンプ,時差反映
引数を省略した場合は現在のUNIXタイムスタンプを使います。
時差反映は0が無し、1が有りでデフォルトは1です。

時差反映0の場合はUTCを基準とした日時での処理、1の場合は実行環境で設定された時差が反映されます。

スクリプト

使用例

タイムスタンプから年を算出する場合、目標の日数に達するまで年でループさせる力技なども考えられますが、このスクリプトでは4年、100年、400年といったグレゴリオ暦における閏年の節目の配分を調べることで年を導き出していますので、数年先、数万年先の結果を計算させたとしても負荷は変わりません。

« || »

Comments are closed.