phpmyadminとかを見ていると、日付の箇所が10桁の数字になっているときがあります。これ、どう見ても、日付ではないな、間違えなのかな、なんて、プログラマーではない方は思われるかもしれません。
そんなとき、ちょっと待ってください。間違えではなく、DB上、UNIXタイムスタンプで保存しているだけのときもあるのです。
今回は、UNIXタイムスタンプと、その変換ツールについてご紹介します。
UNIXタイムスタンプとは
UNIXタイムスタンプとは、コンピューターのシステム時刻のひとつの種類です。
協定世界時(UTC)での1970年1月1日(午前0時0分0秒)からの経過時間を示しています。
UNIXタイムスタンプの利用メリットは、
- そもそも、2019年8月現在、多くの環境で普及している
- タイムゾーンによる影響を受けない
- 秒単位なので実用的
というところです。
要するに多く使われていて、理解されやすい。というところですね。
また、2038年問題というのが、このUNIXタイムスタンプとは関連性の高い話とされています。
2038年問題は、UNIX環境で運用されているシステムにおいて、西暦2038年1月に時間計測の値がオーバーフローを起こして誤作動する可能性があるという問題のことである。
引用 weblio辞書 2038年問題
https://www.weblio.jp/content/2038%E5%B9%B4%E5%95%8F%E9%A1%8C
ただ、OSのビット数が64になっているであろう、この2038年には、あまり関係はなさそうかなとは思っています。
きっと2038年問題は、メディアでは騒がれると思いますが。
UNIXタイムスタンプを日付と時刻に変換するwebツール
このUNIXタイムスタンプを日付と時刻に変換してくれるwebツールがあるんです。
無料のサイトです。
たとえば、
UNIXタイムスタンプ=1495741427
変換すると
日時(Tokyo)=2017/05/26 04:43:47
になります。
プログラマーではない方が調べるときに重宝します!!
UNIXタイムスタンプは、PHPで取得可能
PHPでは、UNIXタイムスタンプを取得することができる関数があります。
このUNIXタイムスタンプを取得できる関数は、time関数です。
time関数は以下。
書き方:
int time(void)
SQLでのselect文のサンプル
プログラマー向けですが、SQLでのselect文のサンプルです。
UNIXタイムスタンプから日付に変換する!
SELECT FROM_UNIXTIME(1567228800)
日付からUNIXタイムスタンプに変換
SELECT UNIX_TIMESTAMP(‘2019-08-31 14:20:00’)
UNIXタイムスタンプは数字なので、扱いやすい反面、知らない人には、翻訳が必要になりますよね。企業の担当者のスキルにもよりますが、このあたりの日付の知識は、今後もIT業界では、重要かもしれませんね!!