Instrução
No ArcGIS Online, a função DateDiff() pode não funcionar corretamente ao calcular a diferença de data entre dois campos, especialmente se os campos de data estiverem em formatos diferentes e forem armazenados como texto ou string. A diferença de data entre dois campos de texto pode ser calculada usando uma expressão Arcade. Esse método transforma informações temporais qualitativas em métricas quantitativas, permitindo abordagens mais informadas e estratégicas para gerenciar e interpretar dados sensíveis ao tempo.
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.
Este artigo fornece o fluxo de trabalho para calcular a diferença de data entre dois campos de texto em uma tabela de atributos utilizando uma expressão Arcade no 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;
Abaixo está o código de trabalho completo da expressão 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.
A imagem abaixo exibe a diferença de data em dias entre os dois campos de texto calculados e preenchidos no novo campo.
ID do Artigo: 000031779
Obtenha ajuda de especialistas do ArcGIS
Baixe o Aplicativo de Suporte da Esri