CÓMO
En ArcGIS Online, es posible que la función DateDiff() no funcione de forma correcta al calcular la diferencia de fecha entre dos campos, especialmente si los campos de fecha están en diferentes formatos y se almacenan como texto o cadena de caracteres. La diferencia de fecha entre dos campos de texto se puede calcular mediante una expresión de Arcade. Este método transforma la información temporal cualitativa en métricas cuantitativas, lo que permite enfoques más informados y estratégicos para administrar e interpretar datos sensibles al tiempo.
Note: The date difference between two text fields can only be calculated if the date format used in the text fields is in dd-mmmm-yyyy.
En este artículo se proporciona el flujo de trabajo para calcular la diferencia de fecha entre dos campos de texto en una tabla de atributos utilizando una expresión de Arcade en ArcGIS Online.
Note: Skip to Step 3 if the script is run on an existing field.
var months = { "January": "01", "February": "02", "March": "03", "April": "04", "May": "05", "June": "06", "July": "07", "August": "08", "September": "09", "October": "10", "November": "11", "December": "12" };
var <variable1> = $feature.<field_name1>; var <variable2> = $feature.<field_name2>;
var <variable3> = Split(<variable1>, " "); var <variable4> = Split(<variable2>, " ");
var dayNum = dateParts[0]; var monthNum = months[dateParts[1]]; var yearNum = dateParts[2];
var dayNum2 = dateParts2[0]; var monthNum2 = months[dateParts2[1]]; var yearNum2 = dateParts2[2];
var <variable5> = yearNum + "-" + monthNum + "-" + dayNum; var <variable6> = yearNum2 + "-" + monthNum2 + "-" + dayNum2; var dateDifference = DateDiff(<variable6>, <variable5>, "days"); return dateDifference;
A continuación se muestra el código de trabajo completo de la expresión de Arcade.
var months = {
"January": "01", "February": "02", "March": "03", "April": "04", "May": "05", "June": "06", "July": "07", "August": "08", "September": "09", "October": "10", "November": "11", "December": "12"
}; var startDate = $feature.StartDate; var endDate = $feature.EndDate; var dateParts = Split(startDate, " "); var dateParts2 = Split(endDate, " "); var dayNum = dateParts[0]; var monthNum = months[dateParts[1]]; var yearNum = dateParts[2]; var dayNum2 = dateParts2[0]; var monthNum2 = months[dateParts2[1]]; var yearNum2 = dateParts2[2]; var updatedStartDate = yearNum + "-" + monthNum + "-" + dayNum; var updatedEndDate = yearNum2 + "-" + monthNum2 + "-" + dayNum2; var dateDifference = DateDiff(updatedEndDate, updatedStartDate, "days"); return dateDifference;
Note: To calculate the difference between the two date fields in other units such as hours, minutes, or seconds, use the same expression and replace 'days' with the desired unit of measurement.
La siguiente imagen muestra la diferencia de fecha en días entre los dos campos de texto calculados y rellenados en el nuevo campo.
Id. de artículo: 000031779
Obtener ayuda de expertos en ArcGIS
Descargar la aplicación de soporte de Esri