まず、date()
、time()
、およびの違いを理解する必要がありmktime()
ます。
date()
表示目的のみに使用されます。数学的な操作には絶対に使用しないでください。
time()
timestamp
current (int
現在の時刻と日付を表す ) を返します。
mktime()
パラメータなしの は、 と同じtime()
です。パラメータを使用するとtimestamp
、設定した時間の を取得できます。パラメータは、時間、分、秒、月、日、年の順序です。
さて、あなたの質問:
質問1
時間操作を行うには、次の操作を実行できます。
$today = mktime(0,0,0); //Today, time neutral
$otherDate = mktime(0, 0, 0, 6, 26, 2008); //2008-06-26, time neutral
$secondsBetweenDates = $today - $otherDate;
質問2
そのようなことを SQL で直接行う方がよいでしょう。PHP で実行されている最も一般的な 2 つのデータベース サーバーで実行できる方法を次に示します。DateSubscribed
有効な日付データ型であると想定しています。
--- MySQL
DELETE FROM `subscribers`
WHERE NOW() < DATE_ADD(`DateSubscribed`, INTERVAL 1 WEEKS);
--- PostgreSQL
DELETE FROM "subscribers"
WHERE CURRENT_TIMESTAMP < ("DateSubscribed" + interval '1 week');
質問 3
これは、DBMS によって異なります。MySQL と PostgreSQL の両方の日付/時刻関数に関連するドキュメント ページは次のとおりです。