0

ユーザーの詳細を保存するアプリケーションを作成しています。フィールドの 1 つは、作成された時間と、ユーザーが自分のアカウントをアクティブにしたい日数です。テーブルフィールドdate('c')に時間を格納するために使用しています。createdユーザーが自分のアカウントを 1 日だけアクティブにすることを選択した場合、その 1 日を現在の日付に追加date('c')して次のテーブル フィールドに保存するにはどうすればよいですかvalid_till

後で、電流がフィールドとフィールドdate('c')の間にあるかどうかを確認することを計画していました。ユーザーアカウントはアクティブであり、そうでない場合はアカウントが削除されます。createdvalid_tll

SQL トリガーを使用してアカウントを削除したいと考えています。

4

3 に答える 3

2

PHP のstrtotime()を使用できます。

$valid_till = date('c', strtotime('+1 day'));

PHP マニュアルの「サポートされている日付と時刻の形式」セクションで、可能な形式の詳細を読むことができます。

于 2013-02-09T14:30:15.690 に答える
1

これがSQLベースのソリューションです。これを更新または挿入に変換できます。

SELECT
    `created`,
    CONCAT(
        DATE_FORMAT(
            DATE_ADD(SUBSTRING(`created`,1,10), INTERVAL 1 DAY), '%Y-%m-%d'
        ),
        RIGHT(`created`,15)
    ) AS 'valid_till'
FROM `some_table`

ただし、SQL 側で簡単に計算できるようUTC_TIMESTAMP()に、PHP の日付関数の代わりにSQL を使用し、 TIMESTAMPa の代わりにデータ型の行を使用することをお勧めします。(VAR)CHAR

于 2013-02-09T14:53:32.680 に答える
1

SQL を使用しない理由は、使用しているエンジンに応じて、create= NOW()、expires NOW() + interval number_of_days のようなものを使用できます。SQL エンジンが日付を処理するため、作成の手間がかかりません。 php 回とそれらを使用して..

于 2013-02-09T14:34:48.330 に答える