新しく質問する

日時を逆算して**前に登録したか表示させる

役に立った:0件
  • 質問者:mutu19730808
  • 投稿日時:2012/01/04 00:31
  • 困り度:すぐに回答が欲しいです
  • 友達に紹介
  • ブログに書く
  • 教えて!gooお気に入り

データの書き込まれた日時から現在時刻を逆算して下記のように表示させるには
どのようにしたら良いのでしょうか?

60分未満は**分で表示
1時間以上24時間未満は**時間で表示
1日以上30日未満は**日で表示
30日以上は****年**月**日で表示

どうか宜しくお願い致します。

この質問への回答は締め切られました。
このQ&Aは役に立ちましたか?(役に立った:0件)
  • 参考になった:0件

No.2ベストアンサー20pt

  • 回答者:KURUMITO
  • 回答日時:2012/01/04 07:39

A1に例えば2011/11/30 13:25 のように日時が入力されているとしたら、次の式のようにします。

=IF(A1="","",IF(NOW()-A1<"1:00"*1,TEXT(NOW()-A1,"mm分"),IF(NOW()-A1<"24:00"*1,TEXT(NOW()-A1,"h時間"),IF(NOW()-A1<30,TEXT(NOW()-A1,"d日"),DATEDIF(A1,NOW(),"Y")&"年"&DATEDIF(A1,NOW(),"YM")&"月"&DATEDIF(A1,NOW(),"MD")&"日"))))

通報する

この回答へのお礼

お礼が遅れて申し訳ありませんでした。
参考書にも記載がなくgoogleで検索を掛けても参考になる
ものがなくて困っていたので助かりました。

  • 参考になった:0件
  • 回答者:kmee
  • 回答日時:2012/01/04 02:57

極単純に
if 60分未満 then **分で表示
else if 1時間以上24時間未満 then **時間で表示
else if 1日以上30日未満 then **日で表示
else if 30日以上 then ****年**月**日で表示
という構造にするだけですが。
条件と判定の順番から
if 60分未満 then **分で表示
else if 24時間未満 then **時間で表示
else if 30日未満 then **日で表示
else ****年**月**日で表示
とも書けるでしょう。

大抵のプログラム言語には、時刻を扱うクラスとか関数が用意されています。それを使えば、2つの日時の差や比較が簡単に求められます。
そうでなくても、時刻を表す数値を使って求められます。大抵はある日時からの累積秒が得られます。
引き算すれば2時刻間の秒数がわかるので、必要に応じて分や日に変換すればいいです。


CGIというのは仕組みの名前であって、言語の名前ではありません。ほぼ全ての言語がCGIと成りえます。
表示とか比較とかをどうするかは使用言語やOS、プログラムの構成によっても変わってきます。
なので、今ある情報だけでは、具体的な方法は答えられません。

そんなに難しい内容ではないので、上のヒントで作ってみてください

通報する

この回答への補足

私の認識不足でご迷惑をお掛けしました。
私自身、CGI=Perlだと思っておりました・・・・

この回答へのお礼

大変参考になりました。

  
このQ&Aは役に立ちましたか?(役に立った:0件)

このページのトップへ

Facebook公式ページ

公式Twitter