1

説明:

ユーザーが購入するたびに、私のサイトの私のアクセス特設ページに1ヶ月の特典が追加される購入機能を行っています。ユーザーからいくつかの苦情を受け取りました。問題のセクションをお読みください。

問題:

500 人のユーザーのうち、たとえば、今日購入しても、有効期限が 1 日または 2 日、または数か月遡るユーザーはほとんどいません。例: 2010 年 8 月 3 日に購入した場合、有効期限は 2010 年 5 月 25 日です。

私のPHPコード:

mysqlデータベースに挿入する1か月前に追加するために使用しているコードは次のとおりです。

// I already set the default timezone
$expiryDate = date("Y-m-d H:i:s",strtotime("+1 month"));

コードが間違っているのか、サーバーが間違っているのか、サードパーティの支払いゲートウェイが間違っているのかわかりません。解決方法を教えてください。

!重要な質問!

有効期限が逆行する原因として、どのようなことが考えられますか?

4

2 に答える 2

0

有効期限を日付または日時フィールドとしてデータベースに保存している場合は、そこで更新を行う必要があります。

UPDATE table SET expiry=DATE_ADD(expiry, INTERVAL 1 MONTH) WHERE ...;

詳細はこちら

于 2010-08-06T03:32:38.683 に答える
0

+1 monthでの使用に問題がありstrtotimeます。関数ドキュメント ページにいくつかの解決策があります。しかし、もし私があなたなら、Zend_Date のようなテスト済みのライブラリを使用します。提案どおりにSQLを使用できますが、DB固有のコードをどのように編成したかから逸脱すると推測します。

于 2010-08-06T06:11:14.073 に答える