2009-06-17 17 views
1

MySQLに入れるためにタイムスタンプを作る必要があります。ユーザーは、その数週間を今日の日付に追加するのに必要な数(週)を送信しています。私がしようとしているのは、ユーザーが送信している広告の終了日を計算することです。日付の計算

これを行う方法に関するご提案はありますか?ありがとう!

答えて

3

strtotimeを使用すると、日付に時間を追加できます。何も渡されない場合は、現在の時刻が2番目の引数になります。次に、あなたのタイムスタンプを作成するためにdate関数にその作成時間を渡すことができます。例えば、

$timestamp = date('Y-m-d H:i:s', strtotime('+10 weeks')); 
2

私はDATE_ADDは(CURDATE()、INTERVAL 2 WEEK)が現在の日付に2 weekssを追加するだろうと思うが

0

広告が特定の時刻に期限切れになるようにするには、mktime:

$ day = date( "d")+($ weeks * 7);を使用できます。
mktime($時間、$分、$秒、$月、$日、$年);

0

ちょうど追加すると、UNIXの時刻を平文の古いintフィールドとしてデータベースに格納する方が、より柔軟で移植性の高いソリューションと言えるでしょう。さらに、単純な整数の格納のみを含むため、挿入と更新が高速に実行されます。それは実際にどのくらいの日付操作は、データベースレベルで行うが必要に応じて異なります。私は移植性とPHPでのすべての日付計算を行う傾向があります。現在のタイムスタンプを保存するために、私はちょうど整数列への出力を挿入する:

strtotime('now'); 

または両方が現在の(UNIX)タイムスタンプを返す

time(); 

。それは本当にあなたのための日付を使用しているかに依存

if($tsFromDb > strtotime('+28 days')) { 
    echo 'it is the future, zombies!'; 
} 

:日付の比較はその後として些細なように、データベースからのタイムスタンプを取得し、簡単な算術演算を実行することによって行うことができます。