プロが教えるわが家の防犯対策術!

データを入力フォームに入れてもらい、それをDBに入れています。そしてそのデータを一覧画面で表示する仕組みでCGIを作っています。使っている言語はperlです。

一覧画面で表示する際に時間の若い順に表示したいと思っているので、入力フォームにlocaltime関数を使いDBに一緒に格納するようにしました。しかしそこからどのように選定すれば良いのかわからずとまってしまいました。
自分なりに考えた事は下記のことです。

1.年月日時分を合計して数字の多い順番に表示させる
結果 必ず数字が大きくなるとは限らないので失敗
2.1時から12時の値に対して30をプラスして計算する
結果 複雑になりすぎて解らない

という事になってしまっています。どうか時間を若い順に表示させる方法を教えて頂けないでしょうか?お願します。

A 回答 (3件)

2002年01月05日14時00分と2002年01月06日1時00分では



2002年01月05日14時00分は、 200201051400
2002年01月06日1時00分は、200201060100
で、2002年01月06日1時00分がおおきくなります。

年は4桁、その他の月日時分はすべて、2桁で扱ってください。
    • good
    • 0

Long秒に変換されるのが良いのですが...。



年月日時分秒を秒の単位で表現します。
こうすると、大小の比較も簡単に出来ますよ。

本当はうるう年等を考慮して作るのが普通ですが、
一番簡単な式は、
秒=(((年-「年のオフセット値(例えば2000)」*372+月*31+日)*24+時)*60+分)*60+秒
と成ります。

これで、大小の比較は出来る思います。(秒差の比較は出来ませんので、それが必要な場合は、正しくうるう年計算をしましょう。)
    • good
    • 0

年月日時分が


2002年01月05日14時00分だとしたら、
12桁の数字として扱って、
200201051400とすれば、必ず時間が遅くなれば数字は大きくなると思うんですけど
    • good
    • 0
この回答へのお礼

回答して頂きありがとうございます。
2002年01月05日14時00分と
2002年01月06日1時00分はどちらが数字が大きい事になるのでしょうか?
馬鹿ですいません。
頭が混乱しています。

お礼日時:2002/01/05 15:08

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!