特定の日付から現在までの経過日数を求めるにはどうしたらいいでしょうか。
1.Date::SimplやTime::Localを使って算出することができます
ここでは、timelocalを使った場合の説明をします。 timelocalperlのモジュールにある特殊な関数です。 use で Time::Localモジュールを使用することを宣言します。 Time::Localのモジュールを宣言したことによりtimelocal関数を使用することができるようになります。
経過秒から86,400秒(60秒×60分×24時間)で割れば日数を得られます。 しかし、経過日数を割り出さなければなりませんので、基準になる日付を指定して現在までの経過秒を求めます。 それがtimelocal( )、モジュールで使用できる関数です。
この値が正しいのか分からないと想うときは、localtimeを使って検証してみてください。 正しい経過秒を取得できた事がわかります。 これで経過秒から経過日数を算出できましたので、現在までの経過秒($time1)から指定の日付までの経過秒($time1)を引き、それを一日の秒数(60秒×60分×24時間)で割り、abs で絶対値にし int で整数にして経過日数が分かります。
Date::Simpleを使うともっと簡単です。
JavaScriptとの違いは計算単位がミリ秒ではなく秒ということくらいですね。
猫の手 高室(たかむろ)
|