現在会員サイトをつくっているのですが、その会員に会員期限をつけようと思っています。
入会から1ヶ月、3ヶ月、6ヶ月、無期限
のようにいくつかの期限を選択できるようにするつもりなのですが、どのようにすれば一番スムーズな書き方なのかわかりません。
私の考え方としては
会員データーベースに入会日(更新日)例えば20050316として、1ヶ月更新の場合有効期限を20050416としてデーターベースに入れていく。
今日の日付が20050416になった瞬間に期限がきれるというようにする。こんな感じです。ただこの場合、年度がかわったりうるう年の計算などカレンダー的な計算は必要かとおもいますが・・・
こんな感じ以外にもっといい方法があればご教授ください。
No.1ベストアンサー
- 回答日時:
あまりに、返信がないようなので、素人ですが。
$time = time();
$time には、1110888760等の日付を秒数化した値が
はいる。
タイムを取得して、1ヶ月なら、$timeで取得した時間
+60(秒)*60(分)*24(時間)*30(日)した値が、再度取得
した$timeより小さければ、期限切れで削除。って方法
もありますよ。
この場合は、日付計算が算術的にできるので便利です。
また、期限切れ当日じゃなくっても、それ以降のアクセス
でも、削除されるので。
一般的に閏年とかは考えないで、30日、60日、90日
と、日付で区切る方が簡単です。
月ごとでもPerlでもできなくはないですが、面倒だと
思うので。
Perlって閏年は、localtimeの中にはないみたいです
ねー。PHPなら、閏年の判定があるみたいなんですが。
さらにSQLだと、日付計算も楽なんですが。
とりあえず、localtimeから閏年計算をしているページを
載せておきます。
参考URL:http://www.7key.jp/hp/perl/ref_getyoubi.html
なるほど、昔なんかでtime関数で秒数で計算することが書いてあったのを思い出しました。
勉強になりました。
PHPは何かと便利な関数がありますよねーーー。
ありがとうございます。
No.2
- 回答日時:
>>1さんの方法とかぶってしまいますが、私もtimeですればいいと思います。
期限日数を$day_limitとして次のように計算します
$time = time;
$day_limit_time = $time + 60 * 60 * 24 * $day_limit;
そして$day_limitをlimit_time.logにでも保存しておきます
そして認証時に$day_limit(期限切れのtime値)を読み込みます
次に以下のように認証を行います
$time = time;
if($day_limit < $time){&error('期限が過ぎました');}
これで期限切れはログイン不可になる(はず)です
次に、期限延長作業は $day_limit は読み込み済みと考えて次のようにします
$limit_plus⇒延期日数
$plus = 60 * 60 * 24 * $limit_plus;
$day_limit += $plus;
これで$day_limitを保存します
これで計算式に間違いが無ければ出来るはず・・・
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(ネットショッピング・通販・ECサイト) URLの有効期限について 1 2022/09/10 16:41
- 雇用保険 契約期間終了で退職した場合の失業手当の手続きや必要書類について教えてください。 2 2022/05/15 00:42
- 消費者問題・詐欺 お金を取り返すことは可能でしょうか? 4 2023/01/07 13:17
- クレジットカード ジムに入会しているのですが、メールで通っているジムの名前からクレジットカードの有効期限が切れます。更 5 2023/04/29 15:57
- その他(IT・Webサービス) JAFの入会について 1 2023/04/21 12:22
- その他(Microsoft Office) Excelの関数(FILTER関数)について教えてください 2 2023/07/31 16:11
- 会社設立・起業・開業 個人から法人へ貸付する場合 金銭消費貸借契約の返済期限について 2 2023/04/29 16:08
- 戸籍・住民票・身分証明書 マイナンバーカードの有効期限と、電子証明書の有効期限について 1 2022/05/25 19:42
- 国民年金・基礎年金 障害年金(精神)の更新について質問があります。 文章で上手く伝えられるか不安ですが、経験者又は知識が 3 2023/03/17 21:40
- Excel(エクセル) エクセルでのINDIRECT関数の使い方について 3 2022/08/22 07:38
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
65536は2の何乗なのでしょうか?
-
CとFORTRANの計算速度はどちら...
-
プログラミング 処理速度
-
60進数の四則計算
-
再帰呼び出しの計算量
-
構文解析を利用した計算プログ...
-
数値計算の高速化 (cos, sin, exp)
-
Perlでのルートの計算
-
排他的論理和 BCC(水平パリテ...
-
Perlで時間の計算
-
DLL(VC++で作った)で稼動中の...
-
Visual C++でdebugとreleaseで...
-
「評価」「評価値」という言葉...
-
[急募]Pythonについてです。
-
10進数から8進数へ
-
VBAの再計算が反映されない件に...
-
VB6.0でのバイナリデータの扱い...
-
R言語での極小値の指数形式での...
-
円周上の3点で作られる三角形...
-
アドオン利率を実質年率に変換
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
65536は2の何乗なのでしょうか?
-
VBAの再計算が反映されない件に...
-
排他的論理和 BCC(水平パリテ...
-
EXCELなどで「返す」という表現
-
C言語の課題で、1年の秒数を計...
-
バッチファイルでウインドウを...
-
骨折リスク評価のFRAXについて...
-
変化させるセルが変化しない
-
CとFORTRANの計算速度はどちら...
-
なぜオーバーフローになるので...
-
数値計算の高速化 (cos, sin, exp)
-
モジュラス103の計算とは何でし...
-
C# 計算処理中に実行中ウィン...
-
モジュロ
-
引き放し法による除算アルゴリ...
-
60進数の四則計算
-
C言語についてです。 再帰を使...
-
Perlで時間の計算
-
CRC8を教えてください
-
傾いた四角形内の範囲の条件式
おすすめ情報