I have an Arcade expression on my popup which returns fields.
If the field type is an esriFieldTypeDate, we format the field as 'ddd DD MMM YYYY'. Opening the map in a browser the date displays correctly, e.g. 'Tue 19 Nov 2024'. However on Field Maps it's displaying as a long timestamp, e.g. '1731991427000'.
Is this a bug or am I doing something wrong?
Relevant Arcade code follows:
// Format field value based on type
function formatField(meta, fieldValue) {
if (meta.domain && meta.fieldType != 'esriFieldTypeInteger') {
return DomainName($feature, meta.name);
}
if (meta.fieldType == "esriFieldTypeDate") {
return Text(fieldValue, 'ddd DD MMM YYYY');
}
return fieldValue;
}
// Build final arrays in validFields order
var attributes = {};
var fieldInfos = [];
for (var v in validFields) {
var fieldName = validFields[v];
var fieldValue = $feature[fieldName];
if (!IsEmpty(fieldValue) && !IsNaN(fieldValue)) {
var meta = fieldMeta[fieldName];
var alias = meta.alias;
attributes[alias] = formatField(meta, fieldValue);
Push(fieldInfos, { fieldName: alias });
}
}
return {
type: "fields",
fieldInfos: fieldInfos,
attributes: attributes
};