質問

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

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

役に立ちましたか?

解決

strtotime を使用して、日付に時間を追加できます-it何も渡されない場合、現在の時刻である2番目の引数を取ります。次に、作成した時間を date 関数に渡して、タイムスタンプを作成できます。 :

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

他のヒント

たとえば、DATE_ADD(CURDATE()、INTERVAL 2 WEEK)は現在の日付に2週間を追加すると思います

広告を特定の時刻に期限切れにする場合は、mktimeを使用できます。

    $ day = date(" d")+($ weeks * 7);
    mktime($ hour、$ minute、$ second、$ month、$ day、$ year);

付け加えておくと、UNIXの時刻をデータベースの平凡なintフィールドとして保存する方が、より柔軟で移植性の高いソリューションであると言う人もいます。さらに、挿入と更新は単純な整数の格納のみを含むため、より高速に行われます。データベースレベルで行う必要のある日付操作の量に本当に依存します。移植性を重視し、日付の計算はすべてPHPで行う傾向があります。現在のタイムスタンプを保存するには、整数列に次の出力を挿入します。

strtotime('now');

または

time();

どちらも現在の(unix)タイムスタンプを返します。その後の日付比較は、データベースからタイムスタンプを取得し、次のような単純な算術演算を実行することで実行できます。

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

実際には、日付の使用目的に依存します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top