today()
返回不帶時間部分的目前日期。
now()
返回 ISO 8601 格式的目前日期時間,包括時區。
警告
此功能經常被濫用。
請閱讀何時評估表達式以了解更多資訊。
https://docs.getodk.org/form-logic/#when-expressions-are-evaluated
decimal-date-time(dateTime)
將 dateTime 值轉換為自 1970 年 1 月 1 日(Unix 紀元)以來的天數。
這是 date() 的逆運算。
date(days)
將表示從 1970 年 1 月 1 日(Unix 紀元)開始的天數的整數轉換為標準日期值。
這是decimal-date-time() 函數的倒數。
decimal-time(time)
將時間轉換為表示小數天的數字。
例如,中午12:00為 0.5,下午 6:00 為 0.75。
format-date(date, format)
以字串形式傳回日期,其格式依照 format 定義。
格式字串中使用以下識別碼:
%Y | 4 位數年份 |
---|---|
%y | 2 位數年份 |
%m | 0 填充月份 |
%n | 數位月份 |
%b | 短文月份(一月、二月、三月…) |
%d | 月份中的某天用 0 填充 |
%e | 一個月中的某一天 |
%a | 短文本日(週日、週一、週二…) |
注意
月份和日期縮寫是特定於語言和區域設定的。
如果可以確定表單區域設置,則將使用該區域設定。
否則,將使用設備區域設定。
format-date-time(dateTime, format)
以字串形式傳回 dateTime,其格式依照 format 定義。
format-date() 中的識別符清單可用,以及以下內容:
%H | 0填充小時數(24小時時間) |
---|---|
%h | 小時(24小時制) |
%M | 0填充分鐘數 |
%S | 0填充秒數 |
%3 | 0填滿的毫秒數 |
area(nodeset | geoshape)
傳回地理點節點集(nodeset )或地理形狀(geoshape )的面積(以平方公尺為單位)。
它考慮了地球繞赤道的周長,但不考慮海拔高度。
distance(nodeset | geoshape | geotrace)
返回以下任一位置的距離(以公尺為單位):
地理點的節點集
type | name | label | calculation |
---|---|---|---|
begin_repeat | points | ||
geopoint | point | 記錄地理點 | |
end_repeat | |||
calculate | calculated_distance | distance(${point}) | |
note | display_distance | 計算距離:${calculated_distance} |
地理形狀的周長
type | name | label | calculation |
---|---|---|---|
geoshape | shape | 記錄地理點 | |
calculate | calculated_distance | distance(${shape}) | |
note | display_distance | 計算距離:${calculated_distance} |
地理追蹤值的長度
survey
type | name | label | calculation |
---|---|---|---|
geotrace | trace | 記錄地理點 | |
calculate | calculated_distance | distance(${trace}) | |
note | display_distance | 計算距離:${calculated_distance} |
連結地理點
geopoint | point1 | 記錄地理點 | |
---|---|---|---|
geopoint | point2 | 記錄地理點 | |
calculate | concatenated_points | concat(${point1},' ; ', ${point2}) | |
calculate | calculated_distance | distance(${concatenated_points}) | |
note | display_distance | 計算距離: ${calculated_distance} |
它考慮了地球繞赤道的周長,但不考慮海拔高度。
random()
傳回 0.0(含)和 1.0(不含)之間的隨機數。
警告
此功能經常被濫用。
請閱讀何時評估表達式以了解更多資訊。
https://docs.getodk.org/form-logic/#when-expressions-are-evaluated
randomize(nodeset[, seed])
傳回打亂後的節點集。
具有數位種子的洗牌是確定性的且可重現的。
此函數的主要用途是隨機化所選問題的選擇順序。
有關選擇小工具的文件描述如何在 XLSForm 中完成此操作。
randomize() 只能在接受節點集的上下文中使用。
請注意,計算類型的問題無法引用節點集。
uuid([length])
如果不帶參數,則傳回隨機的符合 RFC 4122 版本 4 的 UUID。
透過參數,它會傳回指定長度的隨機 GUID。
boolean(arg)
如果 arg 為以下情況則傳回 True:
如果 arg 為以下情況則傳回 False:
not(arg)
傳回 boolean(arg) 的相反值。
coalesce(arg1, arg2)
傳回兩個 arg 的第一個非空值。
如果兩者都為空或不存在,則傳回空字串。
checklist(min, max, response[, response[, response[, ...]]])
如果恰好是字串「yes」的response(回應)數量介於 min 和 max(含)之間,則傳回 True。
將 min 或 max 設為 -1 可以讓參數不適用。
weighted-checklist(min, max, reponse, weight[, response, weight[, response, weight[, response, weight[, ... ]]])
如果剛好是字串「yes」的每個回應的權重總和介於 min 和 max(含)之間,則傳回 True。 將 min 或 max 設為 -1 以使參數不適用
true()
鑑定為 True
false()
鑑定為 False