|today()||Returns a string with today’s local date.||=today()|
|now()||Returns the current date and time including timezone offset.||=now()|
|format-date(date value, string format)||Returns the provided date value formatted as defined by the format argument using the following identifiers: |
%Y: 4-digit year,
%y: 2-digit year,
%m 0-padded month,
%n numeric month,
%b short text month (Jan, Feb, etc),
%d 0-padded day of month,
%e day of month,
%a short text day (Sun, Mon, etc).
|=format-date($mydate, "%a, %e %b %Y") returns a date that looks like Tue, 1 Jan 2019.|
|format-date-time(dateTime value, string format)||Returns the provided dateTime value formatted as defined by the format argument using the same identifiers as format-date (see above) plus the following: |
%H 0-padded hour (24-hr time),
%h hour (24-hr time),
%M 0-padded minute,
%S 0-padded second,
%3 0-padded millisecond ticks.
|=format-date-time(now(), "%H:%M:%S") returns the current time in the format HH:MM:SS|
|date(* value)||Converts to a string in the current date format.||Dates stored as text would need to be converted to date format in order to use the date functions.|
|decimal-date-time(dateTime value)||Converts dateTime value to the number of days since January 1, 1970 UTC.|
|decimal-time(time value)||Converts time value to a number representing a fractional day in the device’s timezone. For example, noon is 0.5 and 6pm is 0.75.|
Tip: if your calculation does not seem to work correctly, confirm that all brackets include an opening and a closing bracket, and try adding white space around the operator, e.g. instead of "=($field_1+5)" use "=($field_1 + 5)"
The fieldworker must record the date of the interview and validation must be added to ensure that no date in the future is accepted for this field.
- Click on the Validation tab of the field.
- Select the comparison type to be 'exactly or before'.
- For the value to compare against, type '=' then select today().
Example of calculating the number of weeks and/or days between two dates:
- Once you've added two date fields in your form, add a calculation field to calculate the number of weeks:
=(($Date2 - $Date1)/7)
- To round it off with a specified number of decimal places you can use the function =round(number arg, number decimals?)
e.g =round((($Date2 - $Date1)/7), 0)
- To calculate the number of days between the two dates, subtract the two dates from each other:
=($Date2 - $Date1)
If you want to display the value of the calculation, add another field (e.g. anfield) and the Calculated Value field name using the dollar character ($) followed by the field name, e.g. $Calc_weeks.
Select the Preview button from the toolbar to test your calculation and see how it will be displayed when using the mobile app.