タイムスタンプの後にユーザーに毎日ペナルティを課すスクリプトを作成しようとしています。1日目は1ポイント、2日目は2ポイント、3番目は4ポイント、4番目は8ポイント、16、32、64などのペナルティが課せられます。
strtotimeと乗算を自動生成するにはどうすればよいですか?
現時点では、探しているものが何と呼ばれているのかわからないので、検索が難しくなります。投稿されている場合は申し訳ありません。
これを試して
$initial_date = '2012-10-20';
$initial_datetime = new DateTime($initial_date);
$today_datetime = new DateTime();
$days_passed = $initial_datetime->diff($today_datetime)->format('%a');
$penalty = pow(2, ($days_passed-1));
echo $penalty;
$timestamp1 が初日のタイムスタンプで、$timestamp2 が現在のタイムスタンプであるとします。それで:
$difference = abs(strtotime($timestamp2)-strtotime($timestamp1));
$days = floor($difference / (60*60*24));
$penalty = pow(2,$days);
echo "{$days} left, so your penalty is: {$penalty}";
サンプル結果:
0 left, so your penalty is: 1
1 left, so your penalty is: 2
2 left, so your penalty is: 4
3 left, so your penalty is: 8
4 left, so your penalty is: 16
5 left, so your penalty is: 32
6 left, so your penalty is: 64
...