2017-07-11 7 views
0

誰かがこのタスクをチェックして修正することに気をつけていたのでしょうか?私はPythonを私が知っている小さなPHPで混乱させ、オープンタグがあると確信しています。MyBBのPHP自動老化タスク

基本的に、厄介な小数点以下の桁が入るフィールドがあります($ ageは後で適切なフィールドIDに置き換えられます)。私たちのサイトは、少年のために数ヶ月、そして大人のための年と季節で働いています。厄介な年齢を使用して、私は、丸められた年齢の値を計算し、次にそれらを年齢を表示するフィールドの値として設定される文字列値として保存しようとしています($ displayagefid、フィールドID)。特定のユーザーグループだけが更新されます(リストは膨大なので、削除しました)。

文字列と別の変数の値の両方を使用して変数を文字列として設定する方法もわかりません。

私はPHPの初心者です。 これは、自己ホストMyBBフォーラムでタスクとして実行されることを意図しています。 ありがとうございます!

<?php 

function task_age($task) 
{ 
global $mybb, $db; 

$increment = 0.04167 
$age = $age + $increment 
floor($age*4) = $seasons 
floor($age) = $years 
floor($age*12) = $months 

if ($year < 1) { 
$display_age = $months, "mnths" 
} 
elseif (! filter_var($year, FILTER_VALIDATE_INT)){ 
$display_age = $year, "yrs" 
} 
else { 
$display age = $display_age = $years, "yrs", $seasons, "s" 
}; 

$query = $db->query(" 
UPDATE mybb_userfields userfields 
for ($usergroup = a || b || d || all that other crap) { 
SET $dispalyagefid = $display_age; 
}; 
"); 

add_task_log($task, "The age characters task successfully ran."); 

答えて

0

私はあなたのコードの上にザッと見ていたし、突き出し最初の事はあなたが後ろから前にあなたの変数の割り当てのいくつかを持っている:

$increment = 0.04167 
$age = $age + $increment 
floor($age*4) = $seasons 
floor($age) = $years 
floor($age*12) = $months 

左側にあるものは何でも何に設定されますあなたの最初の2つはOKですが、最後の3つは切り替えが必要です。

私にはあなたが正しくこれに近づいていないようだと言われています。あなたのサイトに私の小数点以下の桁を入力しますが、どうやって季節を練るのですか?明日の私の誕生日かもしれない、それは昨日私の誕生日だったかもしれない。

あなたは、ユーザーに年齢を計算させて、その年齢を入力させる方がよいでしょう。

$birthday=date_create("2013-03-15"); 
$today=date_create('now'); 
$diff=date_diff($birthday,$today); 

ここで、PHPの日付のすべての要素をチェックすることができます。最初に18歳未満であるかどうかを確認してください:

if ($diff->format("%y") < 18) { 
$ageInMonths = ($diff->format("%y") * 12) + $diff->format("%m"); 
$age = "$ageInMonths months"; 
} 

18歳以上の場合は、年齢を年齢にして残りの月から季節を計算してください。

else { 
$ageInYears = $diff->format("%y"); 
$ageInSeasons = floor($diff->format("%m")/4); 
if ($ageInSeasons > 0) { 
$age = "$ageInYears years and $ageInSeasons seasons"; 
} else { 
$age = "$ageInYears years"; 
} 
} 
+0

こんにちは!もともと、私は詳細を追加するのは適切ではないと思っていましたが、状況の不足がどのように混乱の原因になっているかを見ることができます。これはファンタジーロールプレイングサイトのためのもので、 'サイトタイム'はリアルタイムよりもはるかに速く、主に季節に記録されるため、年齢をこのように計算する必要があります。説明が不十分で申し訳ありません、これを調べていただきありがとうございます! – tig