Actions

Translations

Translations:Expression Manager examples/101/ja

From LimeSurvey Manual

目的 2つの日付の差を計算する
タイプ 出現条件 / 式質問タイプ / 検証
質問1(日付/時刻、コード: DOB): 誕生日はいつですか。
質問2(日付/時刻、コード: datetoday): 今日の日付は。
質問3(テキスト表示) : 生まれてからXXXX日目です。
やりたいこと: 質問1と質問2の間の日数を計算して表示します。
{(strtotime(datetoday)-strtotime(DOB))/60/60/24}
説明 strtotimeは、1970年1月1日から指定された日付までの秒数を計算します。上記の式は、指定された2つの日付の間の秒数を計算します。"/60/60/24"は秒数から日数を計算しています。
"datetoday"を聞く代わりに、strtotime('now')または単にtime()を使えば、1970年1月1日から現在(すなわちアンケートに回答している時刻)までの秒数を得ることもできます。{(time() - strtotime(DOB)) / 60 / 60 / 24 / 365.25}という式によって、その人の年齢を計算することができます。この場合、適切な書式で日付を入力しないとstrtotime()関数が正しく機能しません。
ステップ 2つの日付(誕生日と本日)の質問、テキスト表示の質問を作成します。
テキスト表示質問の質問テキストは、"{datetoday}現在、生まれてから{(strtotime(today)-strtotime(dob))/60/60/24}XXXX日目です。"とします。

注意: 関数strtotimeは、多くの日付フォーマットで動作しますが、すべての日付フォーマットで動作するわけではありません。問題がある場合は、日付形式をmm/dd/yyyy、yyyy-mm-dd、dd.mm.yyyyのいずれかにします。
サンプルファイル Date_difference.zip