ASENSASENSで働く社員が、様々なジャンルの情報を発信。日付文字列をシリアル値に変換するところで少し詰まったのでメモ。PHP5.2以降では、datetime関数を利用することで日付をシリアル値に変換することができるのですが、PHP5.1以前の環境では、datetime関数は実験的な形でしか導入されておらず、簡単に使えません。日付をシリアル値に変換する処理を書くことにしました。シリアル値というのは、EXCELが日付の表示に使っていて、1900年1月1日を基点として、1日毎にプラス1されます。現在時刻のシリアル値を求めるには、1970年1月1日を基点とした秒数であるUNIXタイムを使い、(/60/60/24)+25569(=70年分のシリアル値)の式でシリアル値が算出できる。日本の時刻は時差が9時間あるので、それを加味してやると以下の式になる。(/60/60/24)+25569+9/24この式を使うことで日付文字列をシリアル値に変換することができました。(もちろん日付文字列は、strtotimeなどでUNIXタイムに変換します。理解するまでに少し時間がかかってしまった。